Credo che la comunità Erlang non sia invidiosa di Node.js in quanto esegue l'I / O non bloccante in modo nativo e ha modi per ridimensionare facilmente le distribuzioni su più di un processore (qualcosa che non è nemmeno incorporato in Node.js). Maggiori dettagli su http://journal.dedasys.com/2010/04/29/erlang-vs-node-js e Node.js o Erlang
Che mi dici di Haskell? Haskell può offrire alcuni dei vantaggi di Node.js, ovvero una soluzione pulita per evitare il blocco dell'I / O senza ricorrere alla programmazione multi-thread?
Ci sono molte cose interessanti con Node.js
- Eventi: nessuna manipolazione del thread, il programmatore fornisce solo callback (come nel framework Snap)
- I callback sono garantiti per essere eseguiti in un singolo thread: nessuna condizione di competizione possibile.
- API amichevole e semplice per UNIX. Bonus: eccellente supporto HTTP. DNS disponibile anche.
- Ogni I / O è di default asincrono. Ciò rende più semplice evitare i blocchi. Tuttavia, un'eccessiva elaborazione della CPU in un callback influirà su altre connessioni (in questo caso, l'attività dovrebbe essere suddivisa in attività secondarie più piccole e riprogrammata).
- Stessa lingua per lato client e lato server. (Non vedo troppo valore in questo, tuttavia. JQuery e Node.js condividono il modello di programmazione degli eventi, ma il resto è molto diverso. Non riesco proprio a vedere come la condivisione del codice tra lato server e lato client potrebbe essere utile in pratica.)
- Tutto questo confezionato in un unico prodotto.