There are many reasons already stated in this thread, but as for me, coming from the (in)famous JavaScript world, there’s one thing that I really like about Elixir: that my code (thus far) is sequential.
I’ve just realized how awesome being able to write sequential code is. It really helps keeping your mind sane. In JS we try to mimic it using Promises, but it isn’t exactly the same. async/await is still in ES2016/ES7 so it’s kind of bummer that most platforms haven’t supported it yet.
It’s maybe the case that I haven’t used most of Elixir’s features yet, but it’s great to be able to query the DB (using Ecto) in one line and use it directly after that.
Several other reasons:
- Phoenix. It’s kind of nice to have decisions canonically made for you, especially when you’re learning.
- I love how fast dependency resolving and fetching are in Elixir. In contrast, I tried Haskell, but given up halfway trying to bootstrap an example Yesod project. The fetching and compiling the dependencies took so long.
And of course, echoing many in this thread, the community ![]()


















