Ich glaube, die Erlang-Community ist nicht neidisch auf Node.js, da sie nicht blockierende E / A nativ ausführt und Möglichkeiten bietet, Bereitstellungen einfach auf mehr als einen Prozessor zu skalieren (etwas, das nicht einmal in Node.js integriert ist). Weitere Informationen finden Sie unter http://journal.dedasys.com/2010/04/29/erlang-vs-node-js und Node.js oder Erlang
Was ist mit Haskell? Kann Haskell einige der Vorteile von Node.js bieten, nämlich eine saubere Lösung, um das Blockieren von E / A zu vermeiden, ohne auf Multithread-Programmierung zurückgreifen zu müssen?
Es gibt viele Dinge, die mit Node.js attraktiv sind
- Ereignisse: Keine Thread-Manipulation, der Programmierer bietet nur Rückrufe an (wie im Snap-Framework).
- Rückrufe werden garantiert in einem einzigen Thread ausgeführt: Keine Racebedingung möglich.
- Schöne und einfache UNIX-freundliche API. Bonus: Hervorragende HTTP-Unterstützung. DNS ebenfalls verfügbar.
- Jede E / A ist standardmäßig asynchron. Dies erleichtert das Vermeiden von Sperren. Zu viel CPU-Verarbeitung in einem Rückruf wirkt sich jedoch auf andere Verbindungen aus (in diesem Fall sollte die Aufgabe in kleinere Unteraufgaben aufgeteilt und neu geplant werden).
- Gleiche Sprache für clientseitig und serverseitig. (Ich sehe jedoch nicht zu viel Wert in diesem. JQuery und Node.js teilen sich das Ereignisprogrammierungsmodell, aber der Rest ist sehr unterschiedlich. Ich kann nur nicht sehen, wie das Teilen von Code zwischen Server- und Client-Seite möglich ist in der Praxis nützlich sein.)
- All dies in einem einzigen Produkt verpackt.