Erlangコミュニティは、非ブロッキングI / Oをネイティブで実行し、デプロイメントを複数のプロセッサー(Node.jsに組み込まれていないもの)まで簡単に拡張できる方法があるため、Node.jsにうらやましくないと思います。詳細については、http://journal.dedasys.com/2010/04/29/erlang-vs-node-jsおよびNode.jsまたはErlangをご覧ください。
ハスケルはどうですか?HaskellはNode.jsのいくつかの利点、つまりマルチスレッドプログラミングに頼ることなくI / Oのブロックを回避するクリーンなソリューションを提供できますか?
Node.jsには魅力的なものがたくさんあります
- イベント:スレッド操作はありません。プログラマーはコールバックのみを提供します(Snapフレームワークの場合と同様)。
- コールバックは単一のスレッドで実行されることが保証されており、競合状態は発生しません。
- 素晴らしくシンプルなUNIXフレンドリーなAPI。ボーナス:優れたHTTPサポート。DNSも利用できます。
- すべてのI / Oはデフォルトで非同期です。これにより、ロックを回避しやすくなります。ただし、コールバックでのCPU処理が多すぎると、他の接続に影響します(この場合、タスクはより小さなサブタスクに分割され、再スケジュールされます)。
- クライアント側とサーバー側で同じ言語。(ただし、この例ではあまり価値を見ていません。jQueryとNode.jsはイベントプログラミングモデルを共有していますが、残りは大きく異なります。サーバー側とクライアント側の間でコードを共有する方法がわかりません。実際に役立つ。)
- これらすべてが1つの製品にパッケージ化されています。