A note on terminology: Throughout this post I refer to "the BEAM." BEAM is
the virtual machine that runs both Erlang and Elixir code, similar to how the
JVM runs both Java and Kotlin. Erlang (1986) created the VM and the
concurrency model. Elixir (2012) is a modern language built on top of it with
better ergonomics. When I say "BEAM," I mean the runtime and its properties.
When I say "Elixir," I mean the language we write.
This is gonna rankle folks who like one or the other, but they're basically the same language. When it comes to languages that run on the same VM, Erlang and Elixir are very close together. They aren't nearly as far apart as say, Java and Clojure.
Elixir adds a few things (a lisp-style macro system, protocols, UTF-8 as the default string type, a builtin build tool, streams) but Elixir is not a huge departure from Erlang in the way that Clojure is a huge departure from Java.
By far the biggest things you're going to learn when you learn either one are going to be the BEAM runtime itself and the OTP libraries, which both Elixir and Erlang have in common.
addressed at the very top of the article
How is that addressing the title
Sounds to me like they mean “BEAM” rather than a specific language. But BEAM means Elixir for most newcomers.
Which is a real shame as if you actually spend some time with both you’ll probably eventually realise erlang is the nicer language.
Elixir just feels… Like it’s a load of pre-compile macros. There’s not even a debugger.
Do you have other examples of how it's nicer? I've only ever heard of Elixir being the nicer alternative.
This is gonna rankle folks who like one or the other, but they're basically the same language. When it comes to languages that run on the same VM, Erlang and Elixir are very close together. They aren't nearly as far apart as say, Java and Clojure.
Elixir adds a few things (a lisp-style macro system, protocols, UTF-8 as the default string type, a builtin build tool, streams) but Elixir is not a huge departure from Erlang in the way that Clojure is a huge departure from Java.
By far the biggest things you're going to learn when you learn either one are going to be the BEAM runtime itself and the OTP libraries, which both Elixir and Erlang have in common.