¿Qué es Deno?

4min

Deno es una plataforma para la ejecución de código Javascript fuera del navegador que permite realizar aplicaciones en cualquier ámbito, como podría ser los programas de consola, servicios web o aplicaciones de backend en general.

Para explicar bien qué es esta plataforma, lo menor es decir que se trata de una alternativa a NodeJS, también construida encima del motor de Javascript V8, pero evolucionada. Si prestamos atención veremos que «Deno» es lo mismo que «Node» pero invirtiendo las sílabas. Hasta el creador de Deno y NodeJS es el mismo.

Índice

Por qué necesitamos Deno, una evolución para NodeJS

NodeJS es una plataforma estupenda que actualmente goza de una gran comunidad y miles de paquetes y librerías para hacer todo tipo de programas, en la mayoría de los propósitos que nos podamos imaginar. Entonces ¿Por qué necesitamos un sustituto para Node? ¿Por qué el mismo creador de NodeJS ha lanzado Deno? La respuesta es que Deno es capaz de mejorar en muchos aspectos donde NodeJS no puede aplicar todas las ventajas y novedades de Javascript. Entre ellos, vamos a destacar los siguientes puntos:

  • NodeJS usa los módulos de CommonJS, mientras que el estándar del lenguaje Javascript usa los módulos ES6. Pasarse a módulos ES6 sería muy complejo en Node, por lo que resulta inviable sin cambios profundos. Sin embargo, Deno ha podido comenzar directamente bajo el estándar de módulos Javascript, lo que representa una ventaja para todos los que estamos acostumbrados a usarlos en el navegador.
  • Node necesita npm u otros gestores de paquetes para funcionar, sin embargo, Deno ha conseguido separarse de esta dependencia y puede funcionar incluso sin gestores de dependencias, mediante un manejador de paquetes integrado, que nos libera del uso de npm.
  • La programación asíncrona, una de las claves de Javascript, se implementa mediante promesas en Deno, mientras que las librerías integradas en el lenguaje Node (su API de funciones) hace uso intensivo de callbacks, que producen un código más difícil de mantener.
  • Deno es más seguro gracias a la posibilidad de manejar permisos para el acceso a ciertos recursos. Sin embargo esta funcionalidad no existe en NodeJS, es decir, cualquier script de Node es capaz de hacer cualquier cosa en un ordenador o en un servidor.
  • Deno ofrece APIs más cercanas a la web, como podría ser fetch para el manejo de solicitudes asíncronas.

Deno y TypeScript

Es también muy destacable en Deno la posibilidad de usar TypeScript como lenguaje, una de las herramientas más útiles dentro del ecosistema Javascript. Deno soporta TypeScript sin necesidad de hacer nada en especial. Dicho de otro modo, todo código escrito en TypeScript es compatible con el runtime de Deno sin tener que realizar transpilación del código, lo que nos permite beneficiarnos de todas las ventajas de mantenimiento de las aplicaciones, el intellisense y la detección temprana de errores.

Cuándo usarlo

Hoy mismo puedes comenzar a usar Deno. La plataforma ya tiene un grado de madurez suficiente para realizar cualquier tipo de herramienta o servicio web, beneficiándose de todas las ventajas que ofrece Deno frente a NodeJS.

Dicho esto, hay que señalar el punto débil de esta plataforma, que son los packages con los que es compatible. Si NodeJS tiene millones de packages disponibles en npm para su instalación, a Deno todavía le falta mucho recorrido para llegar allí. Los packages de npm no son compatibles directamente con Deno, por lo que si usamos esta plataforma nos encontraremos muy limitados a la hora de usar las librerías que la comunidad ha ido creando en Node a lo largo de los últimos años.

Es cierto que existe un camino más o menos sencillo (dependiendo de la complejidad de los packages) para versionarlos en Deno, pero son los creadores de los propios paquetes de npm los que requieren hacer el trabajo necesario para publicar versiones compatibles con esta nueva plataforma.

Por tanto, hay que admitir que en el momento de escribir este post todavía es un poco pronto para comparar ambas plataformas. En breve espacio de tiempo esperamos que ese soporte generalizado de packages se vaya produciendo, en cuyo caso estaríamos ante dos alternativas bastante similares.

Entonces ¿Cuándo debo usar Deno?

  • Si te gusta Javascript y tener una plataforma de ejecución mucho más cercana al estándar que se usa en el lado del navegador, Deno es una excelente opción.
  • Si programas con TypeScript y valoras todas las ventajas que este superset ha introducido en el desarrollo de aplicaciones, Deno será estupendo para ti.
  • Sin embargo, si tu aplicación requiere de muchas dependencias de packages de otras personas, entonces quizás Deno no sea todavía tu mejor opción. Habría que analizar muy bien qué dependencias requiere tu proyecto y si existen en Deno las alternativas necesarias para cubrir todos los requisitos que el proyecto plantee.

Conclusión

Deno es una plataforma muy prometedora, que merece la pena observarla de cerca. Cuando se estabilice el soporte a los packages disponibles en NodeJS, esta plataforma será un excelente reemplazo, sin embargo, actualmente aún tendremos que esperar un poco para que esto sea una realidad.

Alberto Blanch

Productos relacionados: