Comenzando con Deno

Ariel Alvarado | Mayo 19, 2020


Deno es un (nuevo) runtime para ejecutar javascript y typescript que utiliza el motor v8 y que fue hecho en Rust.

Un ejemplo simple del código extraido del sitio oficial de Deno:

import { serve } from "https://deno.land/std/http/server.ts";
const s = serve({ port: 8000 });

for await (const req of s) {
  req.respond({ body: "Hello World\n" });
}

Características

Las características más interesantes de Deno son:

  • No otorga acceso a archivos, la red o el ambiente a menos que se habilite explicitamente. Hacer esto es muy importante, es muy difícil enseñar sobre seguridad desde un principio y a veces se pasa por alto.
  • Soporte para typescript nativo (No estoy en contra ni a favor, debería ser decisión del desarrollador).
  • Tiene utilidades interesantes como el inspector de dependencias (deno info) y el formateador de código (deno fmt, como Golang!!!). El formateador de código me parece una de las cosas más importantes que puede tener un lenguaje de programación. Node.js por mucho tiempo dejo el formato al gusto del desarrollador con resultados no muy agradables, luego con prettier todo se puso mejor; contar con un formateador de código que es parte del lenguaje es realmente fundamental.
  • Cuenta con un conjunto de módulos auditados, lo que garantiza compatibilidad con Deno, que no exista código malicioso y además que estas librerias existirán siempre y no serán eliminadas (varios de los problemas de las librerias de Node.js).
  • El código remoto (librerias importadas) se obtiene una vez y se inserta en la caché, nunca se vuelve a obtener el código a menos que se solicite explicitamente con el flag --reload.
  • Se trabaja en una utilidad que permita crear un paquete con el código necesario para ejecutarlo, aunque por ahora sigue en discusión se ve prometedor (algo como la librería pkg de Node.js).

En general esta nueva propuesta se ve muy interesante, en los siguientes posts ahondaremos en deno, sus librerías y, probablemente, crearemos pequeños proyectos para ver como se compara con Node.js.

Eso es todo por ahora, Keep Coding.