The main reason for me to love Elixir (and use it in Production!), is that Elixir is built with developers in mind:
- In Elixir, the way to maintainable code usually coincides with the path of least resistance. (in many other languages, the path of least resistance would result in duct-tape solutions everywhere).
- Elixir and most of its libraries have top-notch documentation.
- Elixir has one of the best testing-stories out there.
- Did I mention that hot-code-reloading is a lot of fun? ^.^
And secondarily, the ability to reason about concurrency and distributed systems by using the BEAM’s implementation of the Actor Model and supervision trees means that:
- The parts of the system that depend on one-other and have to execute sequentially are made explicit.
- The parts of the system that cannot function without one-other are made explicit.
- Failure-handling is set up, such that the system is able to restore to a prior consistent state, and able to provide partial functionality until the system is repaired.






















