Comment by listic
13 hours ago
I heard from a fan of Erlang that Elixir was made by people who don't really understand Erlang who reworked it/BEAM to be in the style of Ruby; that made it popular even though it's an abomination. What do you think?
13 hours ago
I heard from a fan of Erlang that Elixir was made by people who don't really understand Erlang who reworked it/BEAM to be in the style of Ruby; that made it popular even though it's an abomination. What do you think?
A “fan” of erlang definitely gives me vibes if the 3-4 people at conferences who used to debate about Erlang and Haskell and all these things in very academic ways and enjoyed it.
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.
Although I'm late to the pile-on and all the good takes have grown old and gotten replies, I cannot let this grave insult against my people go unanswered.
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.
Joe Armstrong, one of the creators of erlang: "Dave loves Elixir, I think it's pretty cool, I think we're going to have fun together."
I don't think this is 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.
It's nonsense. The people who made Elixir understand Erlang and the BEAM as well as anyone on earth. Elixir and Erlang have different syntax but aren't even that semantically different. Contrast this with say, Java and Clojure. Clojure is significantly different than Java both in terms of what idiomatic code is, as well as how the average developer understands and uses their tools day-to-day. (Obviously they both run on the same VM, the JVM, which is why this comparison works.)
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.
Absurd statement. If you omit surface-level syntax, there's very little that's "in the style of Ruby" in terms of actual semantics.
elixir also has hygenic macros ala scheme. it also easier to write and read day to day compared to erlang. elixir also made strings more manageable.
they made a bunch of tangible improvements
Elixir, the language, is still basically Erlang with some niceties. The main Ruby influences are the syntax, which I don't love but can't say I hate, macros, which Erlang doesn't have, and large web-frameworks like Phoenix.
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.