ES

Deno 2.0

Spanish audio is available in the player settings
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.

This talk has been presented at Node Congress 2023, check out the latest edition of this Tech Conference.

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

Available in other languages:

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
Joe Savona
Mofei Zhang
2 authors
The Talk discusses React Forget, a compiler built at Meta that aims to optimize client-side React development. It explores the use of memoization to improve performance and the vision of Forget to automatically determine dependencies at build time. Forget is named with an F-word pun and has the potential to optimize server builds and enable dead code elimination. The team plans to make Forget open-source and is focused on ensuring its quality before release.
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
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
SolidJS: ¿Por qué tanto Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: ¿Por qué tanto Suspense?
Top Content
Suspense is a mechanism for orchestrating asynchronous state changes in JavaScript frameworks. It ensures async consistency in UIs and helps avoid trust erosion and inconsistencies. Suspense boundaries are used to hoist data fetching and create consistency zones based on the user interface. They can handle loading states of multiple resources and control state loading in applications. Suspense can be used for transitions, providing a smoother user experience and allowing prioritization of important content.
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
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
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
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
El Epic Stack
React Summit US 2023React Summit US 2023
21 min
El Epic Stack
Top Content
This Talk introduces the Epic Stack, a project starter and reference for modern web development. It emphasizes that the choice of tools is not as important as we think and that any tool can be fine. The Epic Stack aims to provide a limited set of services and common use cases, with a focus on adaptability and ease of swapping out tools. It incorporates technologies like Remix, React, Fly to I.O, Grafana, and Sentry. The Epic Web Dev offers free materials and workshops to gain a solid understanding of the Epic Stack.

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
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.