Deno y sus diferencias sobre NodeJS

3min

Deno es una plataforma de ejecución de Javascript moderna y potente, centrada en ofrecer lo mejor de Javascript y TypeScript sin las restricciones del legacy code. Para quien conoce o ha oído hablar de NodeJS, podemos decir que Deno es un competidor que pretende ofrecer las mismas ventajas, pero en un sistema creado desde cero y capaz de solucionar los problemas que arrastra Node desde su creación.

Índice

¿Realmente tiene sentido Deno?

Si ponemos los ojos sobre NodeJS y vemos la impresionante penetración en el mercado que ha conseguido en sus relativamente pocos años de vida, muchos podríamos pensar que no tenía mucho sentido crear un competidor, sobre todo uno como Deno, que no es compatible con los avances más importantes que ha aportado NodeJS. Sin embargo, el propio creador de NodeJS sí encontró la necesidad de resolver muchos problemas que esa plataforma venía arrastrando. Problemas que no era posible de resolver, o al menos eran muy complejos de solucionar, si no se comenzaba todo desde cero. Algunos de los inconvenientes detectados en Node venía derivados de su crecimiento previo a la evolución reciente de Javascript, lo que le obligó a crear una biblioteca de funciones basadas en callbacks en lugar de promesas, un sistema de módulos de Javascript no estándar y una alta dependencia con la herramienta npm.

La cantidad de proyectos que usan Node y la enorme masa de librerías y paquetes aportados por la comunidad, hacen muy complejo realizar actualizaciones en la plataforma, que no rompan el soporte a todo lo anterior, por eso se creó Deno.

Qué diferencias aporta Deno sobre NodeJS

Las diferencias que Deno ha aporta son diversas. Quizás una de las más interesantes en estos momentos es su completo soporte a TypeScript, importante dado que este superset de Javascript es cada día más apoyado y permite un desarrollo con mayores posibilidades de organización y aplicación de arquitecturas avanzadas. Además, Deno nos ofrece estas otras diferencias con respecto a Node.

  • Es un lenguaje más seguro, ya que implementa un sistema de permisos, sin los cuales Deno no es capaz de hacer uso de determinados recursos del sistema.
  • No usa npm, sino que los desarrolladores pueden importar código desde cualquier servidor.
  • Usa los ES6 Modules, el sistema de módulos estándar de Javascript.
  • Usa promesas en lugar de callbacks en sus bibliotecas
  • Es más cercano al código de la web, ya que dispone de objetos como Window y APIs como la de Fetch.

¿Podemos usar Deno hoy?

Deno se ha acogido con entusiasmo por una gran comunidad y las ventajas que ofrece son suficientes para elegirlo en un proyecto, en lugar de NodeJS. Sin embargo, ¿todo son ventajas? lo cierto es que no. A decir verdad, todavía es poco práctico seleccionar Deno como plataforma de desarrollo y ejecución.

La pega fundamental consiste en la falta de compatibilidad con todos los packages de npm. Como sabemos, cuando desarrollamos con NodeJS nos apoyamos constantemente en cientos o miles de paquetes de software libre, realizados por otros desarrolladores. El problema es que los paquetes de Node no son compatibles con Deno.

Poco a poco los desarrolladores van migrando sus paquetes a Deno, pero el problema es que son millones las utilidades que nos aporta npm y probablemente aún pasarán años antes que la mayoría de los paquetes más usados hayan sido actualizados para soportar Deno. Mientras tanto, es una plataforma para tener muy en cuenta. Cuando se haya estabilizado y conseguido soporte para una masa crítica de packages, resultará muy atractiva para usar en lugar de NodeJS.

Fernán García de Zúñiga

Productos relacionados: