Descargo de responsabilidad: nunca escribí una sola aplicación en Node. Lo que estoy publicando aquí son los hechos y la información que reuní al evaluar la viabilidad de Node para un proyecto reciente. Rails fue elegido al final.
Me gustaría comenzar citando la página oficial:
[…] El objetivo de Node es proporcionar una manera fácil de construir programas de red escalables […]
[…] Los fundamentos de los sistemas escalables son las redes rápidas y el diseño sin bloqueo […]
- ¿Dónde suele tener lugar la iteración para el diseño web?
- ¿Qué idioma es mejor para el desarrollo web ahora? Si puedo hacer HTML / CSS, ¿con qué puedo comenzar, JavaScript u otro?
- ¿Qué compañía en el Área de la Bahía tiene el equipo front-end más fuerte / más técnico?
- ¿Cuántos botones hay en un cuadro de alerta de JavaScript?
- ¿Vale la pena pagar por un tema premium de WordPress?
En primer lugar, el Nodo tal como es hoy no puede llamarse ‘Reemplazo de rieles’ porque resuelve un problema de desarrollo web más específico: los servicios basados en web donde el rendimiento es una preocupación principal.
Rails, por otro lado, es una pila para crear aplicaciones web clásicas y maneja casi todo, desde la base de datos hasta el HTML y CSS que se muestra en la pantalla.
Si su proyecto es un sitio web clásico, todavía no puedo encontrar una razón decente para hacerlo con Node. Rails es ampliamente utilizado e implementado, es bastante maduro, toneladas de complementos y gemas para tareas comunes (por ejemplo: autenticación), increíble soporte de pruebas, etc.
El nodo comienza a tener sentido cuando tiene requisitos web en tiempo real (por ejemplo: un juego multijugador en línea, una aplicación de chat) donde tiene muchas pequeñas cosas que suceden y necesita que el cliente se actualice al instante.
Estas aplicaciones son naturalmente necesarias para poder manejar un número mucho mayor de conexiones simultáneas con el fin de enviar actualizaciones en tiempo real al lado del cliente
Node proporciona una infraestructura ‘lista para usar’ para abordar este tipo de problema con una cadena de herramientas completa sin bloqueo (bibliotecas, controladores de bases de datos, etc.).
Tenga en cuenta que no todas las aplicaciones se benefician de un enfoque basado en eventos. Usar Nodo en tales casos será como tratar de ajustar un círculo en un espacio cuadrado 🙂
Esta entrevista con Ryan Dahl sobre por qué creó el nodo puede darle una idea de por qué usarlo:
http://bostinnovation.com/2011/0…