La historia de Node.js comienza en 2009 cuando su autor, Ryan Dahl, presentó por primera vez esta plataforma en la conferencia JSConf EU.
Dahl estaba buscando una forma de crear servidores web en tiempo real altamente escalables. Tenían el problema de que los servidores de la ápoca, como Apache HTTP Server, tenían problemas para manejar un gran número de conexiones simultáneas.
El 27 de mayo de 2009, Dahl presentó oficialmente Node.js como un entorno de tiempo de ejecución de JavaScript de código abierto en el lado del servidor. Funcionaba exclusivamente en Linux y Mac OS X.
Node.js funcionaba con el motor V8 de Google Chrome, que había sido liberado el 02 de septiembre de 2008. Destacaba por su velocidad, ya que no interpretaba simplemente JavaScript, si no que lo compilaba a código máquina
Además, lo combinaba con un bucle de eventos no bloqueante y una API de E/S de bajo nivel. permitía a Node.js manejar eficientemente miles de conexiones simultáneas, marcando una diferencia significativa en comparación con las tecnologías existentes en la misma época.
Esto marcó el comienzo de una nueva era en el desarrollo web, donde los desarrolladores podían usar JavaScript tanto en el lado del cliente como del servidor, lo que facilitaba la creación de aplicaciones web rápidas y escalables
Crecimiento y popularización
En enero de 2010, se introdujo NPM, el gestor de paquetes de Node.js. NPM permitía a los programadores gestionar proyectos en Node.js, e instalar, compartir, y publicar fácilmente paquetes de código reutilizable.
Eso fue un impulso enorme para Node.js. Sin duda NPM es uno de los grandes pilares y razones de la éxito de Node.js, por su capacidad de colaboración y reutilización de bibliotecas y módulos.
Para Junio de 2011, Microsoft y Joyent habían implementado una versión nativa de Node.js para Windows. Esto amplió mucho el alcance y audiencia de la herramienta. Al fin y al cabo, Windows tiene una cuota del 90% de mercado Desktop.
Node.js se convertía rápidamente en una herramienta popular y cotidiana. Era la tecnología “hype” del momento. Todo el mundo hablaba de Node.js. Para bien o para mal, pero hablaban de ella.
Esta expansión fue seguida por cambios en el liderazgo del proyecto, con Ryan Dahl cediendo la gestión a Isaac Schlueter en enero de 2012, y posteriormente a Timothy J. Fontaine en 2014. Paso a ser mantenida por la empresa Joyent, la cuál contrató a Ryan Dahl como empleado.
En 2014 surgieron tensiones en torno a la gobernanza de Node.js, lo que llevó a Fedor Indutny a crear un fork como un fork llamado io.js, que buscaba ser una alternativa con una gobernanza más abierta y receptiva a la comunidad.
Posteriormente se formó la Node.js Foundation en febrero de 2015, que tenía como objetivo volver a unificar Node.js e io.js. Esto se consiguió en septiembre de 2015 con la versión 4.0 de Node.js.
Posteriormente, la JS Foundation y la Node.js Foundation se combinaron en la OpenJS Foundation, que es quién actualmente está al cargo del desarrollo de Node.js.
En fin, un poco de “salseo” que suele pasar en todos los proyectos que se acaban haciendo grandes. Y que comentamos por tener un poco de culturilla de sector e historia de la informática..
Versiones y mejores
Node.js, como herramienta, ha seguido evolucionando con mejoras en rendimiento, seguridad y funcionalidades. Igual que muchos otros desarrollos, en 2015 Node.js adopto la forma de versiones LTS y no LTS.
Las versiones LTS (Long-Term Support) ofrecen estabilidad y soporte a largo plazo para aplicaciones en producción. Mientras que las versiones no LTS tienen los últimos cambios y mejoras, pero no están pensadas para usarse en producción.
Desde 2013 Node.js ha cambiado mucho. Se han incluido mejoras en el rendimiento del motor V8, y la optimización para arquitecturas de múltiples núcleos.
En 2018 se incluyó soporte nativo para HTTP2. En 2019 se añadía soporte nativo para ECMAScript. En 2023, se incluyó el soporte archivos .env, mejoras en la API de módulos y un soporte experimental para la biblioteca de recolección de basura cppgc para los complementos de C++.
Es decir, que como vemos, Node.js es una herramienta que continua evolucionando cada versión, añadiendo nuevas características y mejores.
Por supuesto le han salido distintas alternativas y competidores. Pero, a día de hoy, es el máximo representante de su tipo, y es una herramienta con larga vida por delante.