¿Por qué me copa Deno?
Guille Paz
Un dato que no suma nada es que DE-NO al revés es NO-DE, pero ahora todo tiene sentido.
Deno (se pronuncia /ˈdiːnoʊ/, en argento dino) es un runtime para JavaScript y TypeScript basado en V8, escrito en Rust + Tokio por Ryan Dahl (el creador de Node).
Me copa porque:
- Tiene foco en ser compatible con la plataforma web (funciona como el navegador).
- Soporta TypeScript y WebAssembly out-of-the-box.
- Usa solo ES Modules, no CommonJS.
- Usa URLs para cargar dependencias locales o remotas (como el navegador) en vez de NPM.
- Permite controlar permisos para acceder al sistema de archivos. el acceso de red o el entorno.
- Toma los errores de diseño de Node.js y evoluciona.
- Permite server-side rendering (SSR) + JSX out-of-the-box.
En lo personal no uso TypeScript y por suerte está la opción de usar JavaScript vanilla. Sin embargo, gracias a TypeScript es que soporta JSX.
Gracias a esto podemos enfocarnos en lo que tenemos que resolver y no perder tiempo en configurar dependencias, transpilers y such much boilerplate.
Así es como podemos tener un server-side rendering (SSR) + JSX en Deno:
// deno-ssr.jsx
/** @jsx h */
/** @jsxFrag Fragment */
import { serve } from "https://deno.land/[email protected]/http/server.ts";
import { h } from "https://esm.sh/preact";
import { render } from "https://esm.sh/preact-render-to-string";
function App() {
return (
<html>
<head>
<title>Deno + JSX</title>
</head>
<body>
<h1>Deno con Preact</h1>
</body>
</html>
);
}
function handler() {
const html = render(<App />);
return new Response(html, {
headers: {
"content-type": "text/html",
},
});
}
serve(handler, { port: 3030 });
// deno run --allow-net=:3030 https://gist.githubusercontent.com/pazguille/7a4e0569937d00abef45564d10542bd5/raw/12e31508adc92591fbcfde163571f73da2bda63c/deno-ssr.jsx
Node fue la tecnología que permitió evolucionar el frontend y su desarrollo. Acercarnos al server y pensar en isomorphic, eso lo cambió todo. Deno sigue el mismo camino pero más cerca de los estándares y la plataforma web, por eso me copa.
Comparto la visión que tiene Ryah sobre como construir los fronts y la simplicidad que necesitamos.
¿Hoy Deno reemplaza Node? ¿Salgo corriendo a migrar todo? ¿Me enojo porque en mi laburo no lo usamos?
- No.
Considero que necesita madurar, necesita comunidad e involucrarnos para potenciarlo. Como paso con Node en unos años empresas de gran tamaño lo van a estar usando y posiblemente ayude a potenciar aún más el desarrollo de frontend.
Chao. 🚀