La amistad terminó con Deno: ahora Node.js es mi mejor amigo

Código JavaScript en pantalla con logos de Node.js y Deno

En 2018, Ryan Dahl — el creador de Node.js — subió a un escenario y soltó la bomba: había arrepentimientos sobre cómo construyó Node. Prometió arreglarlo todo con un nuevo proyecto: Deno. Fue amor a primera vista para miles de desarrolladores que soñaban con un runtime moderno, seguro por defecto y sin los dolores de cabeza del node_modules.

Hoy, casi una década después, esa relación tóxica parece haber llegado a su fin. Un hilo viral en Hacker News con más de 250 puntos resumió el sentimiento con crudeza: "Friendship ended with Deno, now Node is my best friend". Y la comunidad dev no ha dejado de darle "me gusta".

Todo empezó con una promesa perfecta

Dahl no se anduvo con rodeos. En su charla "10 Things I Regret About Node.js", criticó decisiones que todos los devs sufríamos a diario: el sistema de módulos CommonJS, la falta de soporte nativo a ES modules, la seguridad inexistente (cualquier script podía leer, escribir y borrar archivos sin permiso), y la gestión caótica de dependencias.

Deno nació como respuesta directa: TypeScript nativo, ESM por defecto, seguridad basada en permisos explícitos, gestor de dependencias sin node_modules gigante, y una experiencia CLI mucho más limpia. Para muchos, esto sonaba a redención. Por primera vez, alguien parecía escuchar nuestros gritos de frustración.

El hype fue real... hasta que llegó la realidad

El entusiasmo inicial fue descomunal. Tutoriales, benchmarks, comparativas y hilos incendiarios inundaron X y Reddit. Pero poco a poco, la chispa se fue apagando.

El mayor talón de Aquiles siempre fue el ecosistema. Node.js lleva 15 años acumulando millones de paquetes en npm. Deno, por más esfuerzos que hizo con npm: specifiers y compatibilidad, nunca logró borrar esa fricción. Muchos paquetes simplemente no funcionaban o requerían hacks para correr. Para proyectos serios en producción, la "compatibilidad con npm" nunca dejó de sentirse como un remiendo.

A eso se sumaron otros dolores: adopción lenta en empresas, herramientas maduras que tardaban en portar soporte a Deno, y una comunidad que, pese a ser apasionada, seguía siendo minúscula comparada con el monstruo de Node.

Node.js no se quedó dormido

Ironía del destino: mientras Deno intentaba destronar a Node, Node.js decidió mejorar. Con la llegada de Node 18+, 20+ y ahora las versiones LTS modernas, muchos de los "regrets" que Dahl señaló se han ido corrigiendo.

ES modules ya son soportados de forma nativa y sin dolor. TypeScript se integra cada vez mejor con herramientas externas. Hay flags experimentales para mayor seguridad. Incluso el rendimiento ha mejorado drásticamente con cada release de V8. Node.js no es el mismo runtime que Dahl criticaba en 2018.

Resultado: desarrolladores que migraron a Deno por esas razones específicas están descubriendo que, hoy por hoy, Node.js vuelve a cubrir el 95% de lo que realmente necesitan, sin tener que pelear con ecosistema roto o con adopción dudosa.

¿Fue Deno un fracaso? Rotundamente NO

Aquí viene lo polémico: decir que "Deno perdió" no es decir que fue inútil. Todo lo contrario. Deno cumplió un rol fundamental: obligó a Node.js a evolucionar.

Sin ese golpe de realidad de 2018, probablemente seguiríamos lidiando con CommonJS como estándar por defecto, sin hablar seriamente de permisos, y con mucho menos ímpetu para modernizar el runtime. Deno fue el martillo que rompió la complacencia. Y eso le debemos un enorme agradecimiento.

Muchos devs aman Deno y lo siguen usando con éxito para side projects, scripts, CLI tools y hasta APIs. No es una guerra binaria. Pero el sentimiento viral que vemos hoy —ese "ahora vuelvo con Node"— es genuino y se replica por todos lados.

La ruptura era inevitable

En el mundo real, cuando rompes con alguien, rara vez es por una sola cosa. Es una acumulación: expectativas irreales, promesas incumplidas y, sobre todo, darte cuenta que la persona con la que realmente querías estar era la que ya tenías.

Para miles de desarrolladores, Node.js era ese viejo conocido que siempre estuvo ahí. Imperfecto, sí. Pero estable, probado a sangre y con todas las llaves para abrir cualquier puerta.

Deno seguirá existiendo, crecerá y encontrará su nicho. Pero para la gran mayoría, la luna de miel terminó. La nostalgia por lo que Deno podría haber sido pesa más que lo que realmente es hoy.

Comparte esto con algún dev que alguna vez juró "nunca volveré a Node.js"... y hoy vuelve a usarlo todos los días.