Je crois que la communauté Erlang n'est pas envieuse de Node.js car elle fait des E / S non bloquantes en natif et a des moyens de faire évoluer facilement les déploiements sur plus d'un processeur (quelque chose qui n'est même pas intégré dans Node.js). Plus de détails sur http://journal.dedasys.com/2010/04/29/erlang-vs-node-js et Node.js ou Erlang
Et Haskell? Haskell peut-il fournir certains des avantages de Node.js, à savoir une solution propre pour éviter de bloquer les E / S sans avoir recours à la programmation multi-thread?
Il y a beaucoup de choses qui sont attrayantes avec Node.js
- Événements: aucune manipulation de thread, le programmeur ne fournit que des rappels (comme dans le framework Snap)
- Les rappels sont garantis pour être exécutés dans un seul thread: aucune condition de concurrence possible.
- API simple et conviviale pour UNIX. Bonus: Excellent support HTTP. DNS également disponible.
- Chaque E / S est par défaut asynchrone. Cela permet d'éviter plus facilement les verrous. Cependant, trop de traitement CPU dans un rappel aura un impact sur les autres connexions (dans ce cas, la tâche doit être divisée en sous-tâches plus petites et reprogrammée).
- Même langage côté client et côté serveur. (Je ne vois cependant pas trop de valeur dans celui-ci. JQuery et Node.js partagent le modèle de programmation d'événements, mais le reste est très différent. Je ne vois tout simplement pas comment le partage de code entre côté serveur et côté client pourrait être utile dans la pratique.)
- Tout cela emballé dans un seul produit.