Elixir must be one of my favorite language, both in terms of feature-set and philosophy. I consider the BEAM (the Erlang VM) to be one of the best piece of technology we have, that is my entirely subjective opinion and nothing you can say will ever change it 🙂
I have this opinion because of 3 things mainly:
the concurrency model, often wrongly called Actor model¹
the ability to interoperate with every language compiling to the BEAM bytecode²
the OTP framework, the set of tools that allow you to build your distributed system³
Erlang, Elixir, Gleam, etc… You can call code written in each of those languages, from each of those languages.
It’s important to note that OTP doesn’t give you a distributed system, but only the tools to build one (those tools are great though).
Designing the architecture of a system by splitting it into multiple, simple components that can talk to each other via message-passing makes each of those components easily testable, and generally easier to reason about.