Patrzę na te same dwie alternatywy dla wielu projektów.
Jak dotąd najlepszą brzytwą, jaką wymyśliłem, aby zdecydować między nimi dla danego projektu, jest to, czy muszę używać Javascript. Jeden istniejący system, który chcę migrować, jest już napisany w Javascript, więc jego następna wersja prawdopodobnie zostanie wykonana w node.js. Inne projekty będą wykonywane w niektórych frameworkach internetowych Erlang, ponieważ nie ma istniejącej bazy kodu do migracji.
Inną kwestią jest to, że Erlang skaluje się znacznie poza wiele rdzeni, może być skalowany do całego centrum danych. Nie widzę wbudowanego mechanizmu w node.js, który pozwala mi wysłać komunikat innemu procesowi JS bez dbania o to, na której maszynie jest on, ale jest on wbudowany bezpośrednio w Erlang na najniższych poziomach. Jeśli Twój problem nie jest wystarczająco duży, aby potrzebować wielu maszyn lub jeśli nie wymaga wielu współpracujących procesów, ta zaleta prawdopodobnie nie będzie miała znaczenia, więc powinieneś ją zignorować.
Erlang to rzeczywiście głęboki basen do nurkowania. Sugerowałbym napisanie samodzielnego programu funkcjonalnego, zanim zaczniesz tworzyć aplikacje internetowe. Jeszcze łatwiejszym pierwszym krokiem, ponieważ wydaje się, że dobrze radzisz sobie z Javascriptem, jest wypróbowanie programowania JS w bardziej funkcjonalnym stylu. Jeśli używasz jQuery lub Prototype, już rozpocząłeś tę ścieżkę. Spróbuj przejść pomiędzy czystym programowaniem funkcyjnym w Erlangu lub jednym z jego krewnych (Haskell, F #, Scala ...) a funkcjonalnym JS.
Gdy już zaznajomisz się z programowaniem funkcjonalnym, poszukaj jednego z wielu frameworków internetowych Erlang; prawdopodobnie nie powinieneś pisać aplikacji bezpośrednio na coś niskiego poziomu, jak inets
na tak późnym etapie. Spójrz na przykład na azot .