Deno 2.0

Rate this content
Bookmark

Deno 2.0 está a punto de llegar y trae consigo grandes cambios para el entorno de ejecución de JavaScript. En esta charla, presentaremos las nuevas características, incluyendo mapas de importación, auto-descubrimiento de package.json y especificadores desnudos. Discutiremos cómo estas mejoras ayudarán a abordar problemas como las dependencias duplicadas y las dependencias que desaparecen. Además, profundizaremos en el soporte incorporado para los especificadores de deno en el registro deno.land/x y su papel en proporcionar un camino recomendado para la publicación. Ven a aprender cómo estas actualizaciones darán forma al futuro del ecosistema de JavaScript y mejorarán la compatibilidad con las aplicaciones Node.

FAQ

Deno es un entorno de ejecución para JavaScript y TypeScript que busca continuar y expandir los objetivos de Node, enfocándose en la seguridad y la optimización para construir servicios en la nube. Deno impone restricciones de seguridad y utiliza un sistema de permisos para controlar el acceso a recursos del sistema.

Deno tiene soporte incorporado para NPM, permitiendo usar paquetes de NPM directamente sin necesidad de una carpeta local de módulos de Node. Además, Deno enfoca en el uso de módulos ECMAScript y no permite el uso del formato CommonJS que predomina en Node.

Deno incorpora una base de datos de clave-valor llamada Deno KV, que permite realizar operaciones básicas como obtener, establecer, listar y eliminar. Esta base de datos soporta transacciones atómicas y es accesible a través de la línea de comandos de Deno.

Deno se diseñó con un enfoque en la seguridad desde el inicio. Por defecto, no tiene acceso al sistema de archivos, red o entorno, a menos que explícitamente se le otorguen permisos. Esto contrasta con Node, donde el acceso a estos recursos es más libre por defecto.

Deno Deploy es una plataforma basada en la tecnología de Deno que corre en la nube y está diseñada para ejecutar aplicaciones en 35 centros de datos alrededor del mundo. Ofrece una plataforma de Funciones de Borde Sin Servidor, permitiendo despliegues rápidos y eficientes de aplicaciones.

Deno KV es una base de datos de clave-valor integrada en Deno, diseñada para almacenar objetos JavaScript con operaciones de clave-valor y transacciones atómicas. Está respaldada por SQLite y, en Deno Deploy, por FoundationDB para ofrecer consistencia y replicación geográfica.

Ryan Dahl
Ryan Dahl
36 min
14 Apr, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla discute la optimización forzada con Node y Deno, con Deno buscando perseguir los mismos objetivos de una manera más expansiva y moderna. Deno tiene soporte incorporado para NPM y aplica restricciones de seguridad. También tiene una base de datos de clave-valor llamada Deno KV, que será una parte central de la API de Deno 2. Deno Deploy es una plataforma de funciones Edge sin servidor impulsada por FoundationDB, optimizada para una lectura rápida e ideal para la construcción de sitios de comercio electrónico o servidores de aplicaciones en el borde. Deno 2.0 llegará pronto con más características en desarrollo.

Available in English: Deno 2.0

1. Optimización forzada con Node y Deno

Short description:

Mi charla trata sobre la optimización forzada, el objetivo original con Node era obligar a los desarrolladores a construir servidores óptimos fácilmente utilizando IO asíncrono. Hoy en día, construir servidores óptimos requiere más que solo IO asíncrono. Con Deno, el objetivo es continuar persiguiendo los mismos objetivos pero de una manera más expansiva y moderna. El sistema necesita ser máximamente accesible, tener una excelente latencia y ser sin servidor.

Mi charla no se llama Dino 2.0, se llama optimization forzada. Hay un truco que haces cuando te postulas para charlas en conferencias donde das un título y alguna descripción y la noche anterior lo inventas mientras avanzas.

Sí, Node es bastante antiguo en este punto. Quizás 13, 14 años. Mi objetivo original con Node era obligar a los desarrolladores a construir servidores óptimos fácilmente obligándolos a usar solo IO asíncrono. No es 100% cierto. Hay IO sincrónico en Node, pero en gran medida, al menos con IO de red, estás obligado a usar IO no bloqueante. Esto es realmente estándar en estos días. Esencialmente, cualquier plataforma está haciendo uso de IO no bloqueante. Pero en 2008, este no era el caso. Había muchas personas escribiendo servidores de IO bloqueantes y enhebrados.

Hoy en día, construir servidores fácil y óptimamente requiere más que solo IO asíncrono. Hay mucho que entra en esto. Estás gestionando configuraciones de cloud. Estás eligiendo una database. Estás pensando en cómo los data podrían replicarse en todo el mundo. Especialmente si estás usando Node, estás navegando por una plétora de cadenas de herramientas y flujos de trabajo que pueden o no funcionar bien juntos. Estás lidiando con la cadena de suministro de security. Solo hacer IO no bloqueante no te lleva todo el camino. Con Deno, el objetivo es realmente una continuación de este objetivo original, pero un poco más expansivo y moderno. Deno continúa la búsqueda de los mismos objetivos, pero pensando en esto de manera holística como un servicio que estás construyendo y desplegando en una cloud pública. Para lograr esto, hay ciertos requisitos que creo que son obvios. En primer lugar, estoy interesado en construir sistemas que sean máximamente accesibles, que tengan una base de desarrolladores muy grande. Por eso JavaScript. JavaScript no es necesariamente el mejor lenguaje en la tierra, pero es el más accesible lenguaje en la tierra. Este sistema necesita tener una excelente latencia en todas partes. Ya sea que accedas al sistema desde Japón o desde la ciudad de Nueva York, no deberías ser penalizado por donde te encuentres en el mundo. Este sistema debería, no sé si estás de acuerdo con esto, pero el sistema debería ser serverless. Quieres cosas que scale hasta cero y scale hasta lo grande que sea necesario. Esto es un gran problema en estos días es que hay mucha configuración que entra aquí.

2. Deno: Marcos, Seguridad y Compatibilidad

Short description:

Estás lidiando con Terraform, archivos de configuración y marcos en Deno. El objetivo es reducir el código repetitivo y mejorar la seguridad. Deno 2.0 está en desarrollo y tiene como objetivo abordar problemas de compatibilidad con Node. Deno proporciona un aviso para el acceso al sistema de archivos y adopta una postura firme sobre los especificadores de importación. Los módulos integrados de Node están disponibles en Deno.

Estás lidiando con Terraform, estás lidiando con varios archivos de configuración de todas las posibles bibliotecas. Estás lidiando con mucho código repetitivo, muchos frameworks. ¿Qué son los frameworks de todos modos? Es solo código repetitivo que de alguna manera estableces con anticipación para empezar a funcionar. Queremos reducir eso tanto como sea posible para avanzar a las personas.

Debería estar asegurado por defecto, ¿verdad? JavaScript es un gran lenguaje para la security porque en realidad es un sandbox y tiene la capacidad de restringir a las personas para que no accedan al sistema subyacente. Deno está intentando cumplir con estos requisitos y cada vez se acerca más a esto. Deno 2.0 saldrá este verano y estamos trabajando hacia esto, ¿verdad? Estamos pensando en esto en términos de cómo construir servicios óptimos en la cloud, servidores óptimos.

Quiero repasar algunos aspectos de esto y algunas características de Deno 2.0 que están en desarrollo y demostrarlas, y simplemente darles una idea de cómo funciona esto. Entonces, en primer lugar, Deno, cuando comenzamos hace un par de años, estaba muy en paralelo a Node. Y esto ha sido difícil para las personas adoptarlo. Porque gran parte del ecosistema de JavaScript depende de las bibliotecas de NPM, depende de las APIs de Node y la implementación de estos módulos integrados es relativamente importante para que las personas se pongan en marcha rápidamente.

Entonces sí, permíteme intentar demostrar algo de esto. ¿Es visible? Ok. Entonces builtin.js. Y puedes importar readfilesync desde node colon fs. Y puedes readfilesync, digamos, algún archivo. Etsy password en realidad no tiene ningún detalle nefasto en estos días, pero aún así es un buen ejemplo de security. Así que simplemente registremos este archivo aquí. Entonces, cuando ejecutamos esto con Deno, por supuesto, la gran cosa de Deno es que no hay security por defecto. No hay acceso al sistema por defecto, más bien. Y cada vez que intentas acceder al sistema de archivos, vas a obtener un aviso. Y lo que me está preguntando aquí es, ¿quieres permitir esto? Y puedes decir, no, no lo hago, en cuyo caso el programa va a fallar. O puedes decir, sí, quiero eso, en cuyo caso obtienes este buffer. En Node, probablemente estés acostumbrado a esto sin un especificador de Node. Y Node en estos días está animando a las personas a usar el esquema de Node en ese especificador de importación. Deno adopta una postura firme aquí en que no vamos a tener estos especificadores de FSBear y demás. Así que esto induce un poco de incompatibilidad con Node. Pero creo que por una buena razón, ¿verdad? Esto no es demasiado grande y te da un mensaje de error agradable que te dice qué hacer. Así que espero que no sea demasiado confuso para las personas. Así que tenemos Node integrado en los módulos de Node.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Compilador React Forget - Entendiendo React Idiomático
React Advanced Conference 2023React Advanced Conference 2023
33 min
Compilador React Forget - Entendiendo React Idiomático
Top Content
React ofrece un contrato a los desarrolladores: cumple ciertas reglas y React puede actualizar eficiente y correctamente la interfaz de usuario. En esta charla exploraremos estas reglas en profundidad, entendiendo el razonamiento detrás de ellas y cómo desbloquean nuevas direcciones como la memoización automática.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
¿Demasiado JavaScript te está agobiando? Los nuevos marcos que prometen no usar JavaScript parecen interesantes, pero tienes una aplicación React existente que mantener. ¿Qué tal si Qwik React es tu respuesta para un inicio de aplicaciones más rápido y una mejor experiencia de usuario? Qwik React te permite convertir fácilmente tu aplicación React en una colección de islas, que pueden ser renderizadas en el servidor y rehidratadas con retraso, e incluso en algunos casos, se puede omitir la rehidratación por completo. Y todo esto de manera incremental sin una reescritura.
SolidJS: ¿Por qué tanto Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: ¿Por qué tanto Suspense?
Top Content
Solid captó la atención de la comunidad frontend al popularizar la programación reactiva con su convincente uso de Señales para renderizar sin re-renderizaciones. Los hemos visto adoptados en el último año en todo, desde Preact hasta Angular. Las Señales ofrecen un conjunto poderoso de primitivas que aseguran que tu interfaz de usuario esté sincronizada con tu estado, independientemente de los componentes. Un lenguaje universal para la interfaz de usuario frontend.
Pero, ¿qué pasa con lo Asíncrono? ¿Cómo logramos orquestar la carga y mutación de datos, el renderizado en el servidor y la transmisión? Ryan Carniato, creador de SolidJS, echa un vistazo a una primitiva diferente. Una que a menudo se malinterpreta pero que es igual de poderosa en su uso. Únete a él mientras muestra de qué se trata todo este Suspense.
De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Todos amamos GraphQL, pero puede ser desalentador poner en marcha un servidor y mantener tu código organizado, mantenible y testeable a largo plazo. ¡No más! Ven a ver cómo paso de un directorio vacío a una API GraphQL completamente desarrollada en cuestión de minutos. Además, verás lo fácil que es usar y crear directivas para limpiar aún más tu código. ¡Vas a amar aún más GraphQL una vez que hagas las cosas Redwood Easy!
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
Jotai es una biblioteca de gestión de estado. La hemos estado desarrollando principalmente para React, pero conceptualmente no está vinculada a React. En esta charla, veremos cómo funcionan los átomos de Jotai y aprenderemos sobre el modelo mental que deberíamos tener. Los átomos son una abstracción agnóstica del marco para representar estados, y básicamente son solo funciones. Comprender la abstracción de átomo ayudará a diseñar e implementar estados en sus aplicaciones con Jotai
El Epic Stack
React Summit US 2023React Summit US 2023
21 min
El Epic Stack
Top Content
El desarrollo web moderno es fantástico. ¡Hay tantas herramientas geniales disponibles! El desarrollo web moderno es agotador. ¡Hay tantas herramientas geniales disponibles! Cada uno de estos sentimientos es cierto. Lo que es genial es que la mayoría de las veces, es difícil tomar una decisión que sea incorrecta. En serio. Los compromisos de la mayoría de los marcos y herramientas que podrías usar para construir tu aplicación se ajustan a las limitaciones de la gran mayoría de las aplicaciones. A pesar de esto, los ingenieros luchan constantemente con la parálisis del análisis.Hablemos de esto, y de una solución en la que estoy trabajando para ello.

Workshops on related topic

Construyendo un Servidor Web Hiper Rápido con Deno
JSNation Live 2021JSNation Live 2021
156 min
Construyendo un Servidor Web Hiper Rápido con Deno
WorkshopFree
Matt Landers
Will Johnston
2 authors
Deno 1.9 introdujo una nueva API de servidor web que aprovecha Hyper, una implementación rápida y correcta de HTTP para Rust. El uso de esta API en lugar de la implementación std/http aumenta el rendimiento y proporciona soporte para HTTP2. En este masterclass, aprende cómo crear un servidor web utilizando Hyper en el fondo y mejorar el rendimiento de tus aplicaciones web.
Revelando la Salsa Secreta de Next.js en el Edge
React Summit 2024React Summit 2024
48 min
Revelando la Salsa Secreta de Next.js en el Edge
Workshop
Mustafa Azim
Mustafa Azim
Next.js en el Edge con su nueva salsa secreta para una mejor experiencia de usuario y alto rendimiento. Revelaremos la salsa secreta de Next.js y la forma de trabajar para ofrecer la mejor experiencia de usuario en la red Edge y las nuevas características, incluyendo la pre-renderización parcial. Cómo aprovechar el componente del servidor y su alto rendimiento en la red Edge.
Tabla de contenidos:- Introducción a la red Edge- Tiempo de ejecución en el Edge con V8- Casos de uso de las funciones en el Edge- Desplegar un servicio en la red Edge
Introducción a Deno y Deno Deploy
JSNation 2022JSNation 2022
158 min
Introducción a Deno y Deno Deploy
Workshop
Luca Casonato
Luca Casonato
Aprende cómo construir aplicaciones full stack con Deno y Deno Deploy. Construiremos una aplicación simple utilizando el framework fresh (fresh.deno.dev), y la alojaremos en Deno Deploy.
Escribiendo Módulos Universales para Deno, Node y el Navegador
Node Congress 2022Node Congress 2022
57 min
Escribiendo Módulos Universales para Deno, Node y el Navegador
Workshop
Luca Casonato
Luca Casonato
En este masterclass te guiaré en la escritura de un módulo en TypeScript que pueda ser utilizado por usuarios de Deno, Node y los navegadores. Explicaré cómo configurar el formato, linting y pruebas en Deno, y luego cómo publicar tu módulo en deno.land/x y npm. Comenzaremos con una breve introducción sobre qué es Deno.