Node.js and Erlang are completely different animals on the savannah.
Examples:
Node.js is centered around a collaborative multitasking model reminiscent of Python Twisted or Rubys EventMachine. Erlang, by contrast, is a proactive multi-tasking system consisting of planners, etc.
Node.js implements JavaScript, which is a prototype-based OO language with an imperative base and several functional ideas. Erlang implements, in essence, an extended lambda calculus in the usual functional style.
Node.js is mainly centered around one machine, where each request is processed in order. Inbound web workers and the multi-node extension allow all machine processors to be used. Erlang is designed to seamlessly integrate multiple nodes that are intended to be used so that a cluster of (more than one) physical Erlang devices can easily interact with each other.
Node.js takes the usual proactive troubleshooting position found in most languages. Erlang, on the other hand, takes a proactive troubleshooting approach: the system is built to survive, even if errors occurred that were not addressed. In the worst case, letting the other physical machine take over.
Node.js is heavily dependent on JIT to get speed. Erlang is a more standard compiled language. The ramifications are that Erlang may be better suited for soft-realtime, since the wall hours of the code are usually more predictable.
Discussion:
It should be clear to you that the approach to the proposed problem is very different from the two languages. Therefore, it is probably worth taking care of both for this reason. In other words, I do not think that one language will completely replace another. Node.js has the power of dating. Erlang has a distinct power wrt reliability.
disclaimer: I hack Erlang.
source share