Why elixir is a procedural language?

Why elixir is a procedural language when almost every programming language is adopting object oriented programming design pattern? Even Drupal 7 was a procedural language before. But now drupal 8 is full object oriented programming framework.

Elixir is “functional”, not “procedural”. So I do not get your question…


I am not sure of this, and it looks like a joke on a functional language forum :slight_smile:

Also Elixir is a language, not a framework.


Just because they made a bad choice doesn’t mean we have to. :wink:


The fact is OOP made Drupal 8 3x times slower than procedural Drupal 7. So OOP when used in wrong places can be bad.



  • OCaml (Objective Caml - 1996) is a functional language that included OO features. This recent discussion demonstrates that to this day those features haven’t “taken over”.

  • Elixir does support Protocols for cases where polymorphism is needed.

  • Because of the naming people often get hung up on functions with functional programming. However another important aspect is immutable by default. Even in Effective Java, 2e (2008) there is Item 15: Minimize Mutability (p. 73). In general, most OO practice doesn’t constrain mutability enough - in fact it is often seen as unnecessary due to encapsulation - however encapsulation doesn’t protect you from unexpected change. This requires the deliberate application of defensive copying - failing to make defensive copies when necessary can have devastating consequences. But in mutable by default environments copying can be expensive while in immutable by default “copying” is optimized through effective use of persistent data structures.

It’s no joke - it’s the typical confusion between what is popular and what is good (generally without taking the context into account).

Why Are So Many Developers Hating on Object-Oriented Programming?

To some degree I think even NoSQL played into this - Document-based storage looked like Object storage and at least temporarily made SQL less relevant.

For the longest time SQL was one of the best opportunities to realize that imperative programming may not always be the best way to do things. At the same time there always have been lots of efforts to dispense with SQL and let everybody live comfortably with their imperative ways (one of the reasons why I like Ecto.Query is because it embraces the way SQL works).


I’m new in elixir. I got my answer. Thanks for guiding me. Will be with this forum for long.
Love learning Elixir.