Primero, para aclarar, Node.js no es un marco; Es un tiempo de ejecución que permite que su JavaScript cotidiano se ejecute en el lado del servidor. Entonces, si está comparando Node con, por ejemplo, Laravel, RoR o Django, entonces está comparando manzanas con naranjas. Estoy escribiendo esta respuesta asumiendo que está comparando Node con otros lenguajes de back-end, como PHP, Ruby, Python o Java.
Según mi experiencia, la ventaja más interesante que obtengo al desarrollar con Node en contraste con los otros lenguajes (he escrito código de back-end en Node, PHP, Python y Java) es su asincronía.
Es muy fácil escribir código asincrónico sin bloqueo. PHP, Python y Java se construyen bloqueando por diseño, y debe hacer un esfuerzo adicional para que no se bloquee. Nodo es todo lo contrario, por lo que las aplicaciones escritas en Nodo, si se realizan correctamente, pueden utilizar la CPU de manera más eficiente al delegar tareas lentas vinculadas a E / S a otros trabajadores, reduciendo así las esperas de E / S sin sentido.
- ¿Qué son las operaciones de backend?
- ¿Dónde está la línea entre el back end y el front end?
- ¿En qué parte de un sitio web se utilizan los idiomas de backend?
- ¿Cuáles son las diferencias entre hacer solicitudes HTTP desde el frontend frente al backend?
- Las empresas necesitan desarrolladores con habilidades de back-end, front-end y móviles al mismo tiempo. Entonces, ¿cómo puedo aprender todas estas habilidades al mismo tiempo?
Las bibliotecas como caolan / async hacen que sea trivial ejecutar operaciones asincrónicas paralelas independientes, haciendo que su programa se ejecute más rápido. He escrito un raspador que raspa varias docenas de páginas en paralelo en una brisa.
No sabría cómo podría lograr lo mismo con PHP, Python o Java sin pasar tiempo aprendiendo cómo escribir un programa asincrónico además de lo que sé sobre ellos antes.
Con Node, debe hacerlo de forma asincrónica.