Fork me on GitHub

@aria_: I drank the Erlang cool aide before I got into Clojure, and though Erlang has some nice ideas in it, it has a lot of sharp edges... In particular, strings are badly broken (and arguably also small integers), the standard library is very basic and inconsistent; and at least when I did a fair bit of Erlang (which admitedly was about 5+ years ago) the library/package management situation consisted of random tar balls on random websites... Also the REPL is really bad - and doesn't properly support the whole language - e.g. it can't evaluate erlang forms, and records were problematic (though I believe they now finally have hashmap literals!)... Also the language really lacks good ways to create abstractions which leads to quite a lot of copy/pasting and/or falling back to preprocessor macro/magic. Actors are quite nice, but they're really pretty low level - and you can't really build anything higher-level on top of them (like channels)... Basically everything in Erlang feels unfinished... contrast it to Clojure maybe even before v1.0 was released and it felt complete and mature


The libraries aren't really very functional either


a simpler thought on actors: they’re solving a different problem than CSP - a harder problem


if you concurrency problem isn't a distributed problem, might as well choose a solution that doesn’t need to shoulder the burden of distributed subproblems


and then, even if you do have to worry about the network, you should still consider queues 😉