Node.jsとErlangは、サバンナではまったく異なる獣です。
例:
Node.jsは、PythonTwistedまたはRubysEventMachineを彷彿とさせる協調マルチタスクモデルを中心としています。それどころか、Erlangはスケジューラーなどを備えたプリエンプティブなマルチタスクシステムです。
Node.jsは、命令型ベースといくつかの機能的なアイデアを備えたプロトタイプベースのオブジェクト指向言語であるJavaScriptを実装しています。Erlangは、基本的に、通常の関数スタイルで拡張ラムダ計算を実装します。
Node.jsは主に単一のマシンを中心としており、各リクエストは順番に処理されます。今後のWebワーカーとmulti-node
拡張機能により、マシンのすべてのCPUを使用できるようになります。Erlangは、複数のノードをシームレスに統合するように設計されています。これは、(複数の)Erlang物理マシンのクラスターが相互にシームレスに通信できるようにするために使用されます。
Node.jsは、ほとんどの言語で見られるプロアクティブな障害軽減の通常のスタンスを取ります。一方、Erlangは、事後対応型の障害軽減スタンスを採用しています。システムは、他の方法では説明できないエラーが発生した場合でも存続するように構築されています。最悪の場合、別の物理マシンに引き継がせます。
Node.jsは、速度を取得するためにJITに大きく依存しています。Erlangはより標準的なコンパイル言語です。その結果、コードの実時間は通常より予測可能であるため、Erlangはソフトリアルタイムに適している可能性があります。
討論:
提案された問題へのアプローチが2つの言語とは大きく異なることは明らかです。したがって、まさにこの理由から、両方を維持することはおそらく価値があります。言い換えれば、ある言語が他の言語に完全に取って代わるとは思いません。Node.jsには親しみやすさの強みがあります。Erlangは堅牢性に対して明確な強みを持っています。
免責事項:私はErlangをハックします。