¿Por qué debería preocuparme por Node.js y cuáles son sus beneficios desde el punto de vista de un desarrollador front-end?

Para elaborar con un poco más de detalle y para darle mi punto de vista …

Si desea crear aplicaciones web en tiempo real con una gran cantidad de lecturas / escrituras sin CPU, Node es muy rápido y una buena solución.

Es por eso que verá muchas empresas que necesitan un intercambio rápido de información entre clientes y servidores (como algunas redes sociales) para sus aplicaciones web en tiempo real utilizando Node en la parte posterior. Es porque es realmente rápido. En comparación con los servidores tradicionales basados ​​en multiproceso / concurrencia donde cada operación se pone en cola en un subproceso independiente, el nodo utiliza su arquitectura asincrónica sin bloqueo para ejecutar las cosas a medida que se completan (controladas por eventos), lo que lo hace realmente eficiente.

También lo hace más fácil debido a que Javascript se encuentra tanto en el front-end como en el back-end y hace que sea muy conveniente para usted crear efectivamente clientes que se comuniquen con el servidor.

Dicho esto, si está haciendo algo que funciona en grandes conjuntos de datos, requiere un cálculo más pesado del servidor, Node es una mala elección porque el nodo por diseño se ejecuta en un solo hilo en comparación con otras soluciones que utilizan múltiples hilos. Por lo tanto, en ese caso necesitará usar algo más con un enfoque de subprocesamiento / concurrencia más tradicional porque la descarga de cómputo en múltiples subprocesos y núcleos será superior al nodo en todos los sentidos.

Pero pasé a un poco más de problemas técnicos, volviendo a su pregunta.

Node es útil para saber si desea crear aplicaciones web rápidas en tiempo real y desea simplificar las cosas con Javascript. Por eso vale la pena saberlo. Le permitirá construir rápidamente front-end, conectarse con Node e incluso escribir la lógica del lado del servidor en JS. Hacer aplicaciones en tiempo real con Node es bastante bueno.

No es que no pueda hacerlo con otros servidores y tecnología (seguro que puede), pero si tiene millones de usuarios interactuando con pequeños datos con su servidor y viceversa, Node será realmente genial debido a, como ya se señaló , es una naturaleza asincrónica sin bloque que hace las cosas muy rápidas.

En conclusión, Node debería estar en tu arsenal. Si hay algo para redondearlo con las habilidades que ya posee, como Javascript.

Esto no niega el hecho de que debe conocer otras soluciones e idiomas, ni mucho menos. Pero para un desarrollador frontal que se aventura en la lógica del servidor de fondo con el mismo lenguaje, valdrá la pena.

Siempre y cuando entiendas que son beneficios y dificultades.

Hay una serie de beneficios, el primero y más importante es que puede permanecer en el mismo idioma. No tiene que hacer el cambio mental a un estilo muy diferente como Ruby.

Si todavía no ha aprendido otro idioma del lado del servidor, ¿por qué molestarse? ¡Ya tienes suficiente para aprender por qué te harías eso a ti mismo!

Flexibilidad de tiempo de ejecución. Dependiendo de las capacidades del cliente, Walmart ejecutará el mismo código JS en el cliente o en el servidor, escalabilidad real.

Puede usar parte del mismo código o al menos un código muy similar. ¿Te gusta usar backbone, bower y jquery? Puedes traer a todos esos contigo. Less.js incluso ejecuta el lado del servidor.

Hay muchas más ventajas para node.js, pero traté de limitarme solo a las ventajas para un desarrollador frontend.

Si usted es un desarrollador front-end, node.js no le daría nada ya que fue creado para ejecutarse en el lado del servidor.
Ahora, si usted es un desarrollador frontend que quiere hacer una programación del lado del servidor, y si solo conoce JavaScript, es genial porque ya conoce el idioma.

Para cualquier otra persona que ya conozca Python, por ejemplo, usar diferentes idiomas en ambos extremos no es un problema en absoluto, ya que JSON hace que el intercambio de datos sea trivialmente fácil.

Hay muchas cosas que puede hacer con node.js que solo están relacionadas con el front-end. Principalmente automatización. Node.js es perfecto para crear buenas herramientas de CLI.

Por ejemplo, puede ejecutar rápidamente sus pruebas en muchos navegadores con Karma. O puede usarlo como un sistema de construcción para minificar y comprimir sus js, css e imágenes. Después de eso, puede usarlo para implementar automáticamente la aplicación en servidores remotos. Además, es una herramienta perfecta para el análisis de código estático. Puede usarlo para administrar bibliotecas de terceros con Bower. O para establecer nuevos proyectos rápidamente con Yeoman. Y mucho más.

Voy a agregar algo que nadie más ha mencionado, que es NPM (Node Package Manager). Igualmente importante para lo que puede escribir en un idioma es lo que puede usar que ha sido escrito por otros. Node tiene una comunidad de desarrollo muy integral. Muchos paquetes son de código abierto y con licencia liberal. La implementación de cosas como Oauth2 se vuelve fácil de ejecutar.

Sí, el mismo idioma en el lado del servidor y del cliente es una ventaja. Pero el poder que proporciona el nodo a la interfaz de usuario puede ser sus capacidades en tiempo real y la capacidad de inserción. Facilita la creación de aplicaciones altamente interactivas y receptivas.

Básicamente puedes escribir tu backend rápidamente y con Javascript. Ese es el principal beneficio desde una perspectiva frontal.