web-dev-qa-db-fra.com

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

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

65
pmn

Twisted est plus mature - il existe depuis très longtemps et a tellement de cloches et de sifflets que de vous faire tourner la tête (implémentations des protocoles les plus fantaisistes, intégration du réacteur avec une grande variété d'autres boucles d'événements, et ainsi de suite).

Node.js est dit être plus rapide (je ne l'ai pas mesuré moi-même) et peut-être plus simple à utiliser (si vous n'avez besoin d'aucune des cloches et des sifflets supplémentaires) exactement parce que ces extras ne sont pas là (un peu comme Tornado dans le Python world - encore une fois, je n'ai jamais mesuré les performances relatives).

Donc, j'utiliserais absolument Twisted si j'avais besoin de l'une de ses fonctionnalités supplémentaires ou si je voulais me sentir sur un terrain plus solide en utilisant un package plus mature. Si ces considérations ne s'appliquent pas, mais que les meilleures performances sont un objectif clé du projet, j'écrirais un test de référence simple (mais toujours représentatif d'au moins une ou deux situations clés de besoin de performances pour mon projet réel) dans Twisted, Node.js, and Tornado, et faites beaucoup de mesures minutieuses 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 abondantes, et cela pourrait être un facteur clé si de tels extras sont nécessaires pour le projet .

Enfin, si aucun de ces problèmes ne concerne 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é - l'un d'eux sera probablement juste Très bien, autant choisir ce que la plupart des membres de l'équipe sont le plus à l'aise!

77
Alex Martelli

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

De nos jours, Node est utilisé par un grand nombre de startups et de sociétés établies dans le monde, de Voxer et Uber à Walmart et Microsoft. Il est sûr de dire que des milliards de demandes transitent par = Node tous les jours. Au fur et à mesure que de plus en plus de personnes viennent au projet, les modules et extensions tiers disponibles grandissent et augmentent en qualité. Bien que j'étais autrefois réservé à le recommander pour des applications critiques, Je recommande maintenant chaleureusement Node même pour les systèmes serveurs les plus exigeants.

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

  • Grande communauté: On peut dire qu'aucune autre plate-forme n'a gagné un tel attrait de la communauté en si peu de temps, elle a des centaines de contributeurs et des milliers d'observateurs dans GitHub, et est utilisé par des géants comme Yahoo! (Projet Manhattan), e-bay, LinkedIn, Microsoft et Voxer.

  • NPM: Bien qu'ayant un noyau relativement petit, Node a lots de packages disponible pour étendre ses fonctionnalités à tout ce que vous pourriez envisager! Tout est automatisé et en cours de développement et d'extension, pensez à PyPI (pip).

  • Évolutivité et vitesse: L'architecture du nœud et la nature à fil unique permettent une évolutivité et une vitesse élevées. Surtout après la version 0.8, sa vitesse est devenue vraiment plus rapide ( benchmarks ), ce qui peut être confirmé par de nombreuses grandes entreprises utilisant Node. Le noyau V8 s'améliore également constamment grâce à la guerre actuelle des navigateurs.

  • JavaScript: Le langage principal de Node (JS) convient mieux à de telles utilisations côté serveur, spécialement les fonctions lambda, dynamiques Les objets et la sérialisation JSON facile sont des points forts de JS qui correspondent vraiment bien dans les cas où la vitesse et l'évolutivité comptent (Python les a tous mais ils sont vraiment meilleurs et plus puissants dans JS).

  • Déploiement: En raison de sa large utilisation, beaucoup de très bons sites fournissent des outils pour un déploiement facile et puissant Node, y compris: 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 pas de contrainte pour l'utiliser (comme le code existant, les serveurs, la capacité d'équipe), il est recommandé pour toute nouvelle collaboration projet de réseau visant à haute vitesse et évolutivité.

7
Amir Ali Akbari