¿Por qué Node.js se está volviendo tan popular?

Grandes puntos de referencia que llevaron a mucha publicidad. Además, estaba el “OMG Javascript hizo eso !?” ángulo cuando Ryan Dahl presentó un servidor IRC en ejecución en 400 líneas de código en JSConf.eu 2009 (ver http://s3.amazonaws.com/four.liv…).

Muy baja barrera de entrada para desarrolladores. Es extremadamente simple de poner en marcha. Veo esto de dos maneras principales. Primero, las expresiones idiomáticas de la programación web y el resto del mundo Javascript se trasladan bastante bien a node.js. Esto es muy diferente de Twisted, por ejemplo, que es bastante diferente del resto del mundo de Python. En segundo lugar, no es necesario instalar / configurar un servidor web para que los ejemplos HTTP funcionen. Ellos solo trabajan.

El conocimiento de que los sistemas escritos en Node.js continuarán siendo extremadamente rápidos. Google está invirtiendo fuertemente en la implementación de Javascript V8 . Esto significa que cualquiera que escriba código en el nodo encontrará que su software se ejecuta más rápido con el tiempo en virtud de las mejoras constantes en sentido ascendente.

Además, una vez que ha comenzado a trabajar con node.js, se da cuenta de que hay algunos obstáculos cognitivos que superar. Hay mucho menos cambio mental entre el frente y el final de un proyecto web.

También creo que el enfoque simple del proyecto, escribir servidores de red para el trabajo vinculado de E / S, significaba que podría hacerlo muy bien. La comunidad no necesita preocuparse por la programación de GUI, que trata con la multiplicación de matrices o cualquier otra cosa.

El soporte de la biblioteca también es muy limpio. Todo lo que se ha creado para admitir Node.js funciona muy bien con otros componentes. Uno de los problemas al trabajar con Twisted es que muchas de las bibliotecas de Python no pueden porque se bloquean en E / S.

Javascript es un lenguaje muy hablado. Dada la ubicuidad de la web , es la lengua franca de la programación. Esto significa que muchas personas podrían venir a explorar, independientemente de sus antecedentes anteriores. Eso significaba que la audiencia potencial para el proyecto era masiva. Cualquier nuevo proyecto de servidor en Ruby necesita convencer a la gente de venir a Ruby. Veo esto más claramente con Erlang. Creo que la gente debería programar en Erlang, en lugar de nodo *. Pero, las barreras son extremadamente altas

Dicho esto, el nodo es extremadamente amigable para el desarrollador . Entre otras cosas, el proyecto tiene algunos rasgos que son bastante atractivos:

  • Excelente documentación y videos tutoriales
  • Gestión de paquetes desde el principio a través de npm.
  • No tiene la mancha de un vendedor que crea un mercado vertical con bloqueo
  • Ha usado Github desde el principio, que es mucho más amigable que los sistemas comparables.

* Por ejemplo, el concepto de “dominios” para aislar las excepciones de impactar a otros usuarios se está considerando para 1.0: Erlang proporciona este tipo de aislamiento de forma predeterminada.

Creo que hay algunas razones detrás de su creciente popularidad, pero creo que las principales son:

  • reutilización del idioma (use el mismo idioma para el desarrollo front-end y back-end),
  • velocidad de ejecución, y
  • comunidad muy activa, con mucha gente y proyectos.

Estoy seguro de que hay muchas más razones, pero esas tres son las que hacen que Node.js sea muy atractivo para mí.

Puede encontrar explicaciones más detalladas aquí: ¿Por qué un equipo de desarrollo debería elegir Node.js para aplicaciones web? ¿Es cierta clase de aplicaciones realmente más fácil para desarrolladores expertos con Node.js?

Fácil: herramientas . Me sorprende que nadie haya mencionado esto: puede tener personas trabajando en Windows, Mac y Linux, sin problemas. Todo funciona, ya que está construido sobre las herramientas subyacentes de Chrome / Chromium.

No se depende de la make específica de la plataforma. En cambio, tienes gulp .

No se depende del embalaje específico de la plataforma. En cambio, tienes npm .

Y así. Toda la pila es independiente de la plataforma. O, más bien, la plataforma es Chrome / Chromium. ¿No crees que es un gran problema? Intente lidiar con rutas de archivos y demás utilizando otro idioma. Claro, hay soluciones, pero con NodeJS, ni siquiera tengo que pensarlo.

Las empresas pueden tener un equipo de desarrollo sin preocuparse de si el equipo debe usar Windows, Mac o Linux.

Bonificación : gulp se puede usar para todo , lo que le permite desarrollar su interfaz de SPA con él además de su API.

Doble bonificación : puede desarrollar herramientas de CLI sin preocuparse por la plataforma. ¡Simplemente npm -g un módulo de nodo y npm -g hacia el éxito!

Bono triple : cuanto más lo use, más módulos de nodo creará. Cuantos más módulos de nodo, más grande es la comunidad. Cuanto más grande es la comunidad, más fácil es encontrar soluciones. (Descargo de responsabilidad: la calidad de las soluciones no está garantizada).

Bono cuádruple : eventualmente, la comunidad se vuelve tan grande que incluso su editor se escribe en la plataforma. ¡Todo es NodeJS! Tan meta! ¡Tan genial! Tan pintoresco!

Nunca subestimes la cantidad de factores de facilidad de uso en las decisiones.