77 votes

Les différences entre les node.js et la Tornade

Outre le fait que node.js est écrit en JS et Tornade en Python, quelles sont les différences entre les deux? Ils sont tous les deux non-bloquant asynchrone serveurs web, non? Pourquoi choisir l'un plutôt que l'autre en plus de la langue?

96voto

Mikhail Korobov Points 6225

Le principal avantage de node.js c'est que l'ensemble de ses bibliothèques sont asynchrones de sorte que vous n'avez pas à vous soucier de blocage. Il y a async bibliothèques pour mysql, postgresql, redis, etc. Tout est asynchrone par défaut.

Python ont une bibliothèque pour rien - mais la plupart de ces bibliothèques ne sont pas en asynchrone. Afin de profiter de la tornade (et de ne pas bloquer le processus), les bibliothèques spécialisées sont nécessaires (par exemple, vous ne pouvez pas simplement "pip install redis" et de l'utiliser, vous aurez besoin de quelque chose comme brukva), et il y a beaucoup moins de tornade bibliothèques de node.js des bibliothèques. Il n'y a pas de async mysql tornade pilote disponible pour le moment, par exemple (ou au moins, je ne suis pas au courant).

Mais vous pouvez toujours utiliser de nombreuses bibliothèques python avec tornade (qui ne fait pas de i/o), et la tornade de la communauté est d'élever et de combler les lacunes.

Il est plus facile d'écrire une application à l'aide de node.js que l'utilisation de la tornade dans mon expérience. J'ai personnellement passé à la tornade de node.js car il s'inscrit dans l'infrastructure existante de mon projet de python pour le meilleur (l'intégration entre django site de servir des pages html et tornade serveur fournissant en temps réel des caractéristiques tout à fait indolore).

13voto

Morten Jensen Points 1821

Aussi Riche Bradshaw souligne Node.js est écrit en JS, ce qui signifie que vous pouvez garder à l'extrémité avant et l'extrémité arrière dans la même langue et, éventuellement, de partager certains de la base de code. Pour moi, c'est un énorme avantage potentiel de Node.js. Le nœud est également livré avec plus de bibliothèques asynchrones hors de la boîte, il me semble.

V8 devrait faire de la JS plus rapide que Python au moins c'est ce que les repères semblent le suggérer, mais il pourrait ne pas beaucoup d'importance, parce que les deux Node.js et Tornade (et la plupart des autres frameworks web d'ailleurs) utilisent wrappers pour des bibliothèques natives. Beaucoup de Python standard library est écrit en C ou peut être remplacé par une alternative plus rapide, ce qui atténue les différences de potentiel encore plus.

Les services Web sont généralement dépendant des e/S, ce qui signifie que nous passons le temps d'attente pour le magasin de données et de ne pas traiter les données. Qui fait la synthèse la différence de vitesse entre JS et Python hors de propos dans de nombreuses applications.

10voto

Rich Bradshaw Points 33598

node.js utilise V8 qui compile en code assembleur, tornade ne le fait pas encore.

Autre que cela (ce qui n'est pas réellement l'impression de faire beaucoup de différence pour la vitesse), c'est l'écosystème. Préférez-vous le modèle d'événement de JS, ou la façon Python fonctionne? Êtes-vous plus heureux à l'aide de Python ou de bibliothèques JS?

3voto

Sushant Khurana Points 487

Nodejs dispose également d'une intégration / mise en œuvre des websockets appelé Socket.io. Il gère les navigateurs supportant les sockets événements et possède arrière bureaux de compatibilité pour les navigateurs plus anciens. Il est assez rapide sur le développement nécessitant une notification cadre ou à un événement en fonction de la programmation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X