Elixir is a wonderful language but don't take our word for it. Let's look at some of the reasons you and your organization should adopt Elixir.
Data is not mutated, rather transformed, into a new set of data.
By eliminating the ability to mutate state outside of scope, functional programs are often easier to follow and contain fewer bugs.
This has the added benefit of improving support for concurrency and thus scalability of systems.
Focus on Functions
Problems are decomposed into simple functions with an emphasis on no side-effects.
These "pure functions" always produce the same results for a given input and change nothing.
Since functions are first class citizens in Functional Programming we're able to easily re-use our functions throughout our applications.
Easy to Test
The very nature of functional programming, small functions with no side-effects, makes testing easy.
Bundled with Elixir is the venerable ExUnit library providing everything necessary to comprehensively test your applications.
While its roots are in lambda calculus, functional programming can be fun, easy, and approachable for everyone! By focusing on breaking problems down into simple, side-effect free, functions we can ensure fewer bugs, better test coverage, while incrementally building our solutions through the composition of well tested functions.
Elixir and the BEAM virtual machine pack a serious punch when it comes to features. With over 35 years of experience the Erlang runtime system has proven itself time and time again as solid platform for distributed, high-available systems.
Compatible with Erlang
The community and ecosystem that have grown up with the language remain one of the alluring parts of Elixir.