What do you think are Erlang's biggest advantages?

I think it goes without saying that Beam is the biggest advantage of Erlang, but then again, it’s also the biggest advantage of the million other languages that is atop that. Erlang’s just the first one.

Let me speak of the advantage of Erlang, the language. And this is based on my experience and my world view and could totally be not viewed as an advantage of any sort by others :slight_smile:

Okay, when I first encountered Erlang, back in 2009, I was baffled and confused by the syntax. My eyes hurt with pattern matching, case-centric differentiation of atoms versus variables, and comma/semicolon expression separator. And my rejoicing period of being able to learn the language faster than any other (Yes, I learned the language fast) didn’t last long as I started hitting walls, each walls having a PID for their names.

And there lies the greatest advantage of Erlang, its unfamiliarity if learned decoupled from OTP. If you treat it only as a language, solve a couple of Project Euler (Advent of Code didn’t exist back then) puzzles, you won’t enjoy it. But only after you understand the way of the OTP, its behaviours, and appreciate its use cases, Erlang starts making sense, and there exists that aha moment where you are empowered both with the framework and the language concurrently (no pun there).

Other languages, like Java, Go, Elixir, F#… they all can be fun as a “language-only”, I have seen people fall in love with Elixir the language, and touched OTP later when faced at work. But Erlang is not enjoyable unless it is learned in tandem with the platform. And both – the platform and the language are easier when learned together, somewhat not in isolation. This is a property Erlang has, which I believe no other language does. This includes other beam languages too.

I have seen many programmers try out Erlang and hate it, then gets into Elixir, hits the Beam, gets back to Erlang and sees it differently. Had they experienced Beam and Erlang together, they’d learn both faster. And seeing OTP behaviours through Erlang’s eyes enlightens faster than seeing it in any other Beam language’s eyes in my opinion.

This is a unique property of Erlang and the greatest advantage of it — in my opinion.

4 Likes