And that’s awesome. We need people like that. But the vast majority of people want to get stuff done, and I have always admired that Jose Valim seems to be one of those people that just “gets” the mix of good technology with its PRACTICAL use rather than just debating programming languages endlessly.
Without elixir, outside of a handful of companies implementing it in their core systems, erlang probably would’ve mostly remained in the domain of the same guys at conferences that passionately debated tabs vs spaces or BDD vs TDD. In fact, I think that’s exactly where Haskell is. I barely hear about it, just like I used to barely hear about erlang.
The rest of us that focus on what we’re building with the technology or the dev UX, etc, would’ve stuck to ruby and other things, if not for elixir.
I say this as someone who has been writing elixir full time since early 2016 and absolutely love the beam. And I’ve yet to edit my first erlang file. It just hasn’t mattered in most of my real world use.
Elixir, if anything, really excels at communicating the intentions of the (occasionally esoteric) architectural demands that the Erlang originally fortified decades ago, often encountered when using OTP. This, alongside that tower of respected Elixir tooling, adhering to Erlang's norms which, once past "mere" interoperability within BEAM, is still supremely important when e.x. minimizing laborious/unusual syntax requirements when using Elixir modules from 'naive' Erlang code. This is part of a more wide-reaching feeling, one of common concerns being important to address in Elixir (and Erlang) for the health of the franchise, not just as grist for the mill of an ancient FP hyperwar, each warring cybergang being willing to die for their preferred juridical interpretation of a bug report.
Elixir is a wonderful language and one of my favorite languages.
> Elixir was made by people who don't really understand Erlang
And this is definitely not true.
The history of Elixir has its roots in Jose learning Erlang, loving the properties BEAM, but wanting a different language.
All of the principles of the BEAM still exist in Elixir. And a lot of the Elixir semantics come from Erlang, precisely because Jose studied Erlang and the BEAM.
Elixir has some semantic "userspace"-level differences from Erlang (Elixir has protocols, macros, defaults to strings as binaries rather than strings as charlists, among other things) but they are much more similar than they are different. Both are on BEAM, both expression-based languages, both use processes for concurrency, have immutable data, use pattern matching for control flow, rely heavily on OTP, deploy with releases, share (or build on) the same datastructures, have the same performance characteristics, etc. If you know Elixir you pretty much already know Erlang modulo the time it takes to learn Erlang's syntax.
they made a bunch of tangible improvements