2010-08-11 10 views
63

Suponiendo que un equipo de desarrolladores se sienten igualmente cómodos escribiendo JavaScript en el servidor como lo están con Python & Twisted, ¿cuándo será Node.js más apropiado que Twisted (y viceversa)?¿Cuáles son los casos de uso de Node.js vs Twisted?

+0

A partir de 2013, cuál es el estado actual de dos de estos marcos. Parece que más personas usan Node.js que Twisted. Corrígeme si estoy equivocado – Nipuna

+0

Toma una decisión informada y comienza. - Después de pasar un par de problemas, usted sabe mejor qué buscar para tomar una mejor decisión. Tal vez cambie su herramienta y vuelva a hacerla. –

Respuesta

77

Twisted es más maduro - ha existido durante mucho, mucho tiempo, y tiene tantas campanas y silbidos como para hacer girar la cabeza (implementaciones de los protocolos más sofisticados, integración del reactor con una gran variedad de otros bucles de eventos, etc.).

Se dice que Node.js es más rápido (no lo he medido) y quizás sea más fácil de usar (si no necesita ninguno de los extras) porque esos extras no están allí (tipo de como Tornado en el mundo de Python - nuevamente, nunca he medido el rendimiento relativo).

Así que, usaría Twisted si necesitaba alguna de sus características adicionales o si quería sentirme en un terreno más sólido usando un paquete más maduro. Si estas consideraciones no se aplican, pero el rendimiento superior es un objetivo clave del proyecto, escribiría un punto de referencia simple (pero aún representativo de al menos una o dos situaciones clave de necesidad de rendimiento para mi proyecto real) en Twisted, Node.js, y Tornado, y hacer una gran cantidad de mediciones antes de decidir qué camino tomar en general. Las "características adicionales" (extensiones de terceros y biblioteca estándar) para Python vs Javascript en el servidor también son mucho más abundantes, y ese podría ser un factor clave si se necesitan tales extras para el proyecto.

Finalmente, si ninguno de estos problemas es relevante para un escenario de aplicación específico, haga que el equipo de desarrollo vote sobre la simplicidad relativa de los tres candidatos (Twisted, Node.js, Tornado) en términos de simplicidad y familiaridad - cualquiera de ellos ¡Probablemente esté bien, también podría elegir lo que sea más cómodo para la mayoría del equipo!

+1

¡Muchas gracias! – pmn

+1

@icey, de nada! –

+0

Excelente respuesta, y +1 para sugerir el aspecto OP en Twisted (que puede ser más simple para sus necesidades). – mikemaccana

8

A partir de 2012, Node.js ha demostrado ser una plataforma rápida, escalable, madura y ampliamente utilizada. Ryan Dahl, creador de Node.js cita:

En estos días, el nodo está siendo utilizado por un gran número de nuevas empresas y establecieron empresas en todo el mundo, desde Voxer y Uber a Walmart y Microsoft. Es seguro decir que miles de millones de solicitudes pasan a Nodo todos los días. A medida que más y más personas llegan al proyecto, los módulos y extensiones de terceros disponibles crecen y aumentan en en calidad. Aunque una vez me reservaron recomendarlo para aplicaciones de misión crítica , ahora recomiendo sinceramente Node incluso para los sistemas de servidor más exigentes .

Más formalmente, las ventajas de nodo se pueden clasificar como:

  • gran comunidad: Se puede decir que ninguna otra plataforma ganó tal recurso de la comunidad en un corto período de tiempo, tiene cientos de colaboradores y miles de observadores en GitHub, y está siendo utilizado por gigantes como Yahoo! (Proyecto Manhattan), e-bay, LinkedIn, Microsoft y Voxer.

  • NPM: A pesar de tener un núcleo relativamente pequeño, Nodo tiene mucha de paquetes disponibles para su funcionalidad se extiende a todo lo que puede considerar! Está todo automatizado y se está desarrollando y extendiendo activamente, piense en PyPI (pip).

  • Escalabilidad y velocidad: La arquitectura de nodo y la naturaleza de un solo hilo permiten una alta escalabilidad y velocidad. Especialmente después de la versión 0.8, su velocidad se hizo realmente más rápida (benchmarks), lo cual puede ser confirmado por muchas empresas grandes que usan Node. El núcleo del V8 también mejora constantemente gracias a la guerra actual del navegador.

  • JavaScript: La lengua de la base de Nodo (JS) se adapta mejor para este tipo de usos del lado del servidor, especialmente las funciones lambda, objetos dinámicos y fáciles de serialización JSON son destacados JS lo que realmente encaja muy bien en los casos en que la velocidad y escalabilidad recuentos . (Python los tiene todos, pero estos son realmente mejores y más potentes en JS).

  • Despliegue: Debido a su amplio uso, una gran cantidad de muy buenos sitios proporcionan herramientas para el despliegue de nodos fácil y de gran alcance, incluyendo: Heroku, Joyent, Cloud9 y mucho más.

Por lo tanto, el Nodo parecen más potente y con un futuro más ligero, por lo que si no hay ninguna limitación para utilizarlo (como el código existente, servidores, capacidad de equipo), se recomienda para cualquier nuevo proyecto de red de colaboración apuntando a alta velocidad y escalabilidad.

+27

Parece que no estás al tanto del alcance de la madurez de Twisted. Ninguno de los puntos que ha resaltado a favor de Node es en realidad exclusivo de Twisted (excepto el punto "JavaScript", que es el elemento más tenue de la lista). –

+4

@ Jean-PaulCalderone y un vistazo rápido a los identificadores de barras a la derecha respalda su primer punto: node.js × 11239 twisted × 1021 – UpTheCreek

+5

Si crees que el tamaño es la única métrica para medir la comunidad, seguro. –

Cuestiones relacionadas