2 ms·
Almost no one uses mnesia. Those 5-10x faster languages are not as productive as Erlang. Python, Ruby, PHP, Node.js are all slow. > As long as you stay in the
by rapsey 5y ago
Almost no one uses mnesia. Those 5-10x faster languages are not as productive as Erlang. Python, Ruby, PHP, Node.js are all slow.
> As long as you stay in the ecosystem you're OK, but if you're using Erlang to speak to a non-Erlang DB, to interact with a non-Erlang message bus like Kafka or something, to call APIs from non-Erlang systems and provide APIs to non-Erlang systems, all this integration becomes more a trap than an advantage.
I fail to see why. You can write an API and communicate with an API just like any other language.
> Erlang's types integrate well with Erlang, but are just quirky enough that it's a pain to integrate with anything else.
You integrate through APIs. I do not see how it has anything to do with Erlang's internal types. Any service designed to be used by a diverse set of clients requires a clean API.
> (Erlang, like many functional languages of the era, made the mistake of defining a "string" as a "linked list of numbers representing characters", which makes lists ambiguous as to whether they are lists or strings.)
Where does this matter in practice? I've been building Erlang software for 10+ years and people keep criticizing it for this and I still do not understand why this is such a big deal to everyone.
> Scaling to "practically anything" is table stakes for a language/runtime now.
Python/PHP/Ruby/Node.js are pretty terrible at taking advantage of many core systems.
> Someone else says languages are "catching up" to Erlang, but to a large degree, they have, and exceeded it in many places.
Erlang is still unmatched when it comes to ease of use building reliable distributed systems and it is not even close. Yeah you could run Kafka, Kubernetes and a bunch of other technologies that do their job better than Erlang does it natively. But at the end of the day, Erlang is one technology that is good enough for most and does not require large operational experience to run. Your entire stack is in your own code, understandable by your entire team.