4 ms·
> Isolated process heaps? - Just use OS processes OS procs are heavyweight. Erlang procs are ~2KB each. You can spin up millions on one box while traditional O
by whalesalad 2y ago
> Isolated process heaps? - Just use OS processes
OS procs are heavyweight. Erlang procs are ~2KB each. You can spin up millions on one box while traditional OS procs would melt your machine. Not even in the same league.
> Supervision trees? - Use kubernetes.
Comparing Kubernetes to Erlang supervision trees misses the mark. K8s is infrastructure that requires significant configuration and maintenance outside your codebase. Erlang's supervision is just code - it's part of your application logic. And those nested supervision trees? Good luck implementing that cleanly in K8s without a ton of custom work.
> Message passing? - Not a big deal, I can write two threads and a shared queue in Java.
Basic threads and queues don't compare to Erlang's sophisticated message passing. Pattern matching on receive makes for cleaner, more maintainable code, and the transparent distribution across nodes comes standard. Building equivalent functionality from scratch would require significantly more code and infrastructure.
"Any sufficiently complicated concurrent program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Erlang."
> Hot code loading? - Java can do that too
Java can reload classes, but Erlang was designed for seamless evolution of running systems. The gen_server callbacks for upgrading state during hot code loading show how deeply this concept is integrated into Erlang's core.
- hackernudes 2y agoIt's funny reading your response because I think you skipped the second half of the comment! Your rebuttals to the rebuttals are pretty similar.
- whalesalad 2y agoits friday my brain is cooked - you're right.
- rdtsc 2y agoNo worries, at all I had figured you'd notice eventually. But I essentially agreed with you was just saying that common perceptions and how Erlang managed to do well there.