Quels sont les cas d’utilisation de Node.js vs Twisted?

En supposant qu’une équipe de développeurs soit tout aussi à l’aise avec l’écriture de Javascript côté serveur qu’avec Python & Twisted, quand Node.j sera-t-il plus approprié que Twisted (et vice versa)?

Twisted est plus mature – il existe depuis longtemps, il a tellement de cloches et de sifflets que vous devez tourner la tête (implémentation des protocoles les plus sophistiqués, intégration du réacteur avec une grande variété d’autres boucles d’événements et ainsi de suite).

On dit que Node.js est plus rapide (je ne l’ai pas mesuré moi-même) et peut-être plus simple à utiliser (si vous n’avez besoin de rien de plus) parce que ces extras ne sont pas là (un peu comme Tornado dans le Monde Python – encore une fois, je n’ai jamais mesuré la performance relative).

Donc, j’utiliserais absolument Twisted si j’avais besoin de l’une de ses fonctionnalités supplémentaires ou si je voulais me sentir plus solide en utilisant un package plus mature. Si ces considérations ne s’appliquent pas, mais que les performances maximales sont un objective clé du projet, j’écrirai alors un test de référence simple (mais toujours représentatif d’au moins une ou deux situations de performances clés) dans Twisted, Node.js, et Tornado, et faites beaucoup de mesure minutieuse avant de décider de la voie à suivre. Les “fonctionnalités supplémentaires” (extensions tierces et bibliothèque standard) pour Python vs Javascript côté serveur sont également beaucoup plus nombreuses, et cela pourrait être un facteur clé si de tels extras sont nécessaires pour le projet.

Enfin, si aucune de ces questions n’intéresse un scénario d’application spécifique, demandez à l’équipe de développement de voter sur la simplicité relative des trois candidats (Twisted, Node.js, Tornado) en termes de simplicité et de familiarité. bien, peut-être aussi bien choisir ce qui convient le mieux à l’équipe!

En 2012, Node.js s’est avéré être une plate-forme rapide, évolutive, mature et largement utilisée. Ryan Dahl, créateur des citations Node.js:

Ces jours-ci, Node est utilisé par un grand nombre de startups et de sociétés établies dans le monde entier, de Voxer à Uber en passant par Walmart et Microsoft. On peut affirmer que des milliards de requêtes transitent chaque jour par Node. À mesure que de plus en plus de personnes viennent au projet, les modules et extensions tiers disponibles augmentent et la qualité augmente. Bien que j’étais jadis réservé à le recommander pour des applications critiques, je recommande vivement Node pour les systèmes de serveur les plus exigeants.

Plus formellement, les avantages de Node peuvent être classés comme suit:

  • Grande communauté: on peut dire qu’aucune autre plate-forme n’a gagné un tel attrait communautaire en si peu de temps. GitHub compte des centaines de consortingbuteurs et des milliers d’observateurs et est utilisée par des géants tels que Yahoo! (Projet Manhattan), e-bay, LinkedIn, Microsoft et Voxer.

  • NPM: bien qu’ayant un kernel relativement petit, Node dispose de nombreux packages pour étendre ses fonctionnalités à tout ce que vous pouvez envisager! Tout est automatisé et développé et étendu activement, pensez à PyPI (pip).

  • Évolutivité et rapidité: l’architecture et la nature mono-thread de Node permettent une évolutivité et une rapidité élevées. Spécialement après la sortie de la version 0.8, sa vitesse est devenue vraiment plus rapide ( tests de performance ), ce qui peut être confirmé par de nombreuses grandes entresockets utilisant Node. Le kernel de la V8 s’améliore constamment grâce à la guerre des navigateurs en cours.

  • JavaScript: le langage de base de Node (JS) convient mieux à de telles utilisations côté serveur, en particulier les fonctions lambda, les objects dynamics et la sérialisation JSON facile sont des points forts de JS qui conviennent parfaitement aux applications rapides et évolutives. (Python les a tous mais ceux-ci sont vraiment meilleurs et plus puissants dans JS).

  • Déploiement: En raison de sa large utilisation, de nombreux sites très performants fournissent des outils pour un déploiement de nœuds simple et puissant, notamment: Heroku, Joyent, Cloud9 et bien plus encore.

Par conséquent, Node semble plus puissant et avec un avenir plus léger, donc s’il n’y a aucune contrainte pour l’utiliser (comme le code existant, les serveurs, les capacités de l’équipe), il est recommandé pour tout nouveau projet de réseau collaboratif visant la vitesse et l’évolutivité.