En 2018, Ryan dio una charla en la que cubrió las 10 cosas más importantes que pensaba que estaban mal en Node.js, y al final de esa presentación, presento a Deno, en aquel entonces era sólo un pequeño proyecto en el que estaba construyendo lo que se llamaría Node.js v2, mejorado y más seguro.

Deno es simple moderno y seguro runtime para JavaScript y TypeScript. Es un entorno de programación de propósito general para JavaScript y TypeScript. Una nueva forma de escribir JavaScript del lado del servidor.

¿Ryan Dahl? - Es un ingeniero de software reconocido por ser el desarrollador original Node.js y ahora del actual Deno.

Deno fue construido usando Rust y TypeScript basado en el motor Chrome v8 y hace uso de librerías como Tokio

TypeScript

Tiene TypeScript incorporado. Por lo tanto, no es necesario un archivo de configuración ts. Pero eso no significa que esté obligado a usar TypeScript. Dado que TypeScript es un superconjunto de JavaScript, simplemente puede usar JavaScript si así lo prefiere.

Seguridad

Una gran diferencia entre Node y Deno es la seguridad. Deno es seguro por defecto. Todo está bloqueado. Deno requiere permisos explícitos para el acceso a archivos, redes y entornos para ejecutar su código. Esto evita agujeros de seguridad involuntarios.

Modulos

Deno usa módulos ECMAScript. Entonces, en lugar de usar require, se usara import. Esto es algo que afecta el uso de módulos NPM.

En los proyectos de Deno no existe la carpeta node-modules. Los modulos se almacenan en cache y se usan globalmente para cualquier proyecto que los requiera. Seguro te preguntas Deno requiere una conexión siempre activa a Internet. La respuesta es no, cuando se hace referencia a los paquetes, se descargan y almacenan en cache, Muy similar a los módulos de NPN. Simplemente no se almacén en cada proyecto, Tambien puede hacer el llamdo al modulo que esta en un directorio.

? Async Nativo para las Promesas

Una característica impresionante de Deno es que tiene async nativo para las promesas de alto nivel. Eso significa que en el nivel superior no tiene que declarar asyncantes de una promesa. Si está trabajando dentro de una función, deberá usar el sintaxis estándar async/ await.

? Fetch incorporado

Además, fetch está incorporado. No se necesitan módulos.

? Objeto de Window

¡Deno tiene un objeto window, que es increíble! Esto permite la interoperabilidad entre el navegador y el código del lado del servidor. ¡Esto es genial para los desarrolladores!.

Instalación

Hay varias formas de instalar Deno. Aquí hay dos ejemplos.

Usando Shell (macOS y Linux):

$ curl -fsSL https://deno.land/x/install/install.sh | sudo DENO_INSTALL=/usr/local sh

Usando PowerShell:

# Run as administrator:
$env:DENO_INSTALL = "C:\Program Files\deno"
iwr https://deno.land/x/install/install.ps1 -useb | iex

Código de ejecución

Para ejecutar tu código, usa deno run. Aquí hay un ejemplo de bienvenida de Deno:

$ deno run https://deno.land/std/examples/welcome.ts

? Entonces, ¿reemplazará Node.js?

En realidad no, simplemente porque en este momento es sólo la culminación de alrededor 2 años de trabajo en una idea. Todavía no se ha probado en sistemas de producción. No ha sido revisada y puesta en practica por desarrolladores para llevarlo hasta sus límites. Y hasta que que suceda, sólo será un juguete para que los primeros desarrolladores jueguen con ella. Tal vez en un año, empezaremos a escuchar a las empresas compartir sus experiencias con él, con el tiempo, la comunidad que lo respalda lo adaptará a un punto en el que sea útil. ¿Reemplazará a Node entonces? Quién sabe! Tendremos que esperar y ver.

¿Entonces, qué ? piensas?

Fuente: dev.to/codestackr, Deno Manual