3 ms·
> Message passing and the guarantees of processes means you simply never have to worry about mutexes or race conditions in the same way you do in almost any oth
by kaba0 3y ago
> Message passing and the guarantees of processes means you simply never have to worry about mutexes or race conditions in the same way you do in almost any other language
Race conditions are impossible to avoid, so that part is absolutely not true. You may be thinking of data races, which is a (small) subset of all race conditions - but things like dead/live locks can’t be avoided statically with agents, so unless Erlang has some inbuilt runtime system to prevent live locks, this claim is not true in this form.
> Although, I should note that on a similar-sized Java project, I would expect similarly slow compile times. I think Go and Node.JS are better
Javascript itself doesn’t need recompilation, but the JS ecosystem does plenty of code transformations and it manages to be slower sometimes than full machine code compilation, it is ridiculous.. the frontend builds are almost always taking much longer than the order of magnitude bigger backend Java code in my experience.