← Back to listing

Elixir: A Stable Foundation

Development Elixir Erlang B e a m O t p

What I like most about Elixir is how it offers developers a very stable foundation to build upon, both in terms of technological stability (thanks to BEAM) and in terms of churn. With the release of Elixir 1.9 back in 2019, José Valim noted that Elixir was more or less “done” in terms of major features, and that the focus going forward would be on developer experience, ergonomics and other quality-of-life matters.

I have to admit that initially this idea of the language being “done” had me a little worried, as I had grown used to the idea of ever-evolving languages with PHP and JavaScript. It soon turned out that my worries were completely unnecessary, as Elixir with its metaprogramming capabilities ensures that many interesting projects can be built on top of it. Thanks to the extensibility of the language, changes can introduced through macros without altering the language itself. See for example Nx and Axon, two major projects in machine learning and numerical computation space.

Not needing to chase new language features or to keep up with a whirlwind of changes allows me to focus on being productive. It also feels like much of the community has embraced a similar approach to libraries: they can actually be “done”, and you can rely on them for years.

While it’s exciting to read about all the new things that are going to be available to you in your programming language of choice (say PHP 8 or the bleeding edge of JavaScript), I realised that dopamine hit was a red herring. In reality, I’m excited about Elixir precisely because it is stable and reliable, much like the software it allows one to build.

This doesn’t mean the ecosystem or language would be stagnating, however. Just a few weeks ago, the Erlang team released OTP 24 that adds, among other things, a just-in-time compiler that greatly boosts the performance of code running on BEAM. Depending on your benchmark, you can expect a performance improvement between 20% and 60%, which is massive. And yet, as an Elixir developer, I don’t have to do anything to reap these benefits. This is the kind of enhancement of a language I truly appreciate.