Hacker News new | ask | show | jobs
by Grimm1 1983 days ago
Erlang's VM is great, Erlang the language isn't imo. Elixir just did it better imo and this person seemingly can't stand that people seem to like it more. Let people like the things they like :P I'm really not sure this needed a blog post.
5 comments

This is unflattering. Do keep in mind that erlangs was built in the mid 80s so for it's time it was fantastic, and erlang is relatively conservative in it's language (which is not a wrong choice) so it just hasn't caught up, and it might never, and that's okay.
Sure, but this article called out Elixir in a most unflattering way too, two wrongs may not make a right but I don't see the point of this post to do anything other than what I did right there state an opinion that is going to rustle some jimmies. There's no real objective discussion to be had here.

Edit: That said I'm not being contrarian for the sake of it, I tried both Erlang and Elixir. Elixir however, is the one that kept me because I knew I wanted the benefits of that VM and the OTP capabilities to a degree but the niceties of a modern language which is after all a major reason I choose a language to do a job and be easy to write and maintain which I feel Erlang lacks the latter.

> Elixir just did it better imo and this person seemingly can't stand that people seem to like it more.

The post does read more like venting than a structured critique, but a few of his points are still valid.

Every time I hear someone praising Elixir, it's never about some Elixir-specific feature but usually about something that Erlang has provided for ages like pattern matching, lightweight processes, supervisors, the preemptive scheduler. Given this, I'm sure you can appreciate how bittersweet this can be for an Erlang developer.

To me Elixir is just a more complex, verbose and less elegant version of Erlang so it kinda frustrates me when newcomers would rather learn Elixir than plain Erlang.

Elixir code out there is much cleaner than erlang code bases. In terms of organization, picking names. And there's much more dedication to testing and documentation. I think these software habits are very important for newcomers, and so if you are truly dedicated to the craft of software you probably should want them to learn Elixir even if the language is 25% more cumbersome in the small. There is something about the terseness of erlang that I think carries over to a mentality of not writing tests and not documenting. It doesn't help that it is less of a part of the culture (probably since it's an older language, Elixir is a post-"software-testing-revolution" language; Erlang is a pre-testing-revolution language).
> Elixir code out there is much cleaner than erlang code bases.

You do understand this is just your subjective opinion and not a universal truth, right?

You are basing your argument as if it was a fact that Elixir is “cleaner” (whatever that means) and that there was a thing called “software-testing-revolution” which Erlang was never a part of. Both are subjective and, frankly, plain BS.

> if you are truly dedicated to the craft of software you probably should want them to learn Elixir

Oh boy, I don’t even know where to start... so you’re basically implying that Erlang programmers are not “truly dedicated to the craft of software”? It would be laughable if it wasn’t just sad.

This is the Ruby world mentality that just rubs me the wrong way. Not even worth carrying on with the discussion.

I legitimately could not get passed the choice of syntax, module organization etc. I believe many people feel the same way. Verbosity is good imo, languages are read more than written and Erlang is too terse for me. I love Erlang conceptually and I love that Elixir made it accessible to me because I otherwise would have just avoided the Erlang ecosystem all together and would have gone with Go, the thought of which makes me shudder because I am not a fan there. I can completely understand it being bittersweet and not that I knowingly represent a majority but I suspect many people think the same way I do in regards to writing in Erlang. To me terse != elegant and I find Elixir goes the mile for me there in what I do find elegant.
It's curious how these matters can be subjective. It's Erlang the verbose one for me: the commas at the end of the lines. Of course Elixir has all those do/end and commas in the with statement (I wish it was part of the language and not a macro). Maybe I was just too happy to do without the trailing ; when I moved to Ruby and Python from C and Java.
> Let people like the things they like

Does that include writing blog posts? Or, liking Erlang over Elixir? Or, bashing Elixir?

How do any of those stop people from liking what they like? Unlike, what you did.

I'm not really sure this needed a hypocritical comment.

"Unlike what I did" care to clarify?
i couldn't disagree more. erlang is a great language let down by it's primitive and esoteric vm

i wish i could still write erlang but i've moved on to languages with much better implementations (go, rust, julia)

> Erlang the language isn't imo.

Why not?

Personal thoughts:

In Elixir you have consistent utf-8 binary string usage everywhere, consistently named modules/functions, consistently ordered arguments/return values, and, thanks to the pipe operator, in 3rd party code as well.

And none of that in erlang ;)

No separation between header and code, structs are better than records (because they bear their data labels when you inspect them, even if you send to another node that doesn't recognize them), and also since elixir requires that the tags are modules, you can use them for polymorphism (this is the best of OOP without OOP).

Much better documentation support, better compile time infrastructure, smart metaprogramming (this package would be a PITA in erlang: https://github.com/ityonemo/zigler), opinionated but optional directory organization. Module namespaces which are trivially subdivided and aliased, easier time making anonymous GenServers. The Task module, full stop. The registry module, as well.

Thanks.
most of that has to with libraries, not the language. I'd take good libraries with Erlang semantics and syntax over good libraries with other lang's semantics and syntax.
Thanks.
Not really the underlying concepts again the VM and OTP stuff are pretty neat, but the fact that it's fairly esoteric when it comes to writing it imo. That may be a shallow opinion but it did keep me away from the language in a way Elixir did not, time is money and I believe Elixir is far easier to write and maintain and as such is quicker to work in with the right tools to boot.