Javascript Debería Venir Con Baterías

Rate this content
Bookmark

Configurar proyectos de JavaScript no es divertido. Empezar implica instalar y configurar node, tsc, prettier, eslint, un marco de pruebas, un controlador de base de datos, y más. ¿Por qué JavaScript no incluye baterías? En esta charla hablaremos de cómo Deno soluciona esto, permitiéndote concentrarte en construir cosas. Exploramos qué beneficios desbloquea la integración completa de herramientas, y recordamos lo divertido que es programar si tus herramientas te ayudan, en lugar de requerir tu cuidado constante.

FAQ

Deno es un entorno de ejecución de JavaScript de próxima generación que ofrece seguridad por defecto, soporte nativo para TypeScript y JSX, herramientas integradas como testing, linting y formateo, y ejecutables de un solo archivo. Además, incluye APIs estándar de la web integradas y es compatible con Node.js y NPM.

Deno integra herramientas de desarrollo de serie, como un linter y un formateador, que no requieren configuración adicional. Estas herramientas están diseñadas para trabajar con estándares que son comúnmente aceptados, minimizando la necesidad de personalización.

Fresh es un marco de trabajo de frontend construido para Deno que utiliza Preact en lugar de React. Está diseñado para ofrecer cero sobrecarga en tiempo de ejecución y soporta renderizado del lado del servidor en el borde.

Deno simplifica la configuración de proyectos al eliminar la necesidad de archivos de configuración y proporcionar herramientas y dependencias integradas. Esto permite a los desarrolladores iniciar proyectos rápidamente sin tener que configurar manualmente cada herramienta o dependencia.

Deno promueve un enfoque 'baterías incluidas', donde muchas herramientas y configuraciones necesarias para el desarrollo moderno están integradas de serie. Esto reduce la complejidad y mejora la coherencia entre proyectos, facilitando la portabilidad y la colaboración.

Deno se lanzó como una alternativa a Node.js, con mejoras en seguridad, herramientas integradas y soporte nativo para TypeScript. Aunque comparte algunas compatibilidades con Node.js, Deno introduce un modelo de permisos más seguro y una experiencia de desarrollo más simplificada.

Deno es compatible con Astro a través de un adaptador específico y está trabajando para mejorar la compatibilidad con Next.js, especialmente en el modo de desarrollo. Los esfuerzos están en curso para asegurar la compatibilidad completa con estos y otros frameworks populares.

Deno proporciona Deno Deploy, una plataforma de alojamiento optimizada para aplicaciones JavaScript serverless que se ejecuta en el borde. Esta solución está diseñada para aplicaciones a gran escala y ofrece características como una base de datos global y soporte para módulos Node.

Luca Casonato
Luca Casonato
30 min
08 Dec, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Javascript Debería Venir Con Baterías: Deno es un entorno de ejecución de JavaScript de próxima generación que aborda la falta de herramientas integradas en JavaScript. Proporciona una forma segura y sencilla de desarrollar aplicaciones con pruebas integradas, linting, formateo, y un servidor de lenguaje para VS Code. Deno es compatible con Node.js y NPM, soporta APIs estándar de la web, y permite la portabilidad de código entre el frontend y el servidor. También ofrece características como una base de datos integrada, un almacén de clave-valor, y monetización transparente con Deno Deploy.

1. Introducción a JavaScript y Premisa de la Charla

Short description:

Hola a todos. Gracias por estar aquí. Soy Luca, ingeniero de software en la empresa Deno. Mi charla es JavaScript Debería Venir Con Baterías. JavaScript carece de una biblioteca estándar extensa y herramientas predeterminadas, lo que requiere que los desarrolladores configuren todo ellos mismos. Esto incluye formateadores, linters, marcos de prueba y paquetes adicionales para diversas tareas.

Hola a todos. Gracias por estar aquí. Sé que es muy tarde. Probablemente todos estén muy cansados y quieran irse a casa. Así que les contaré algo que no sea React, por una vez. Probablemente han tenido muchas charlas de React hoy porque estamos en una conferencia de React. Pero no lo sé. Voy a hablar más sobre JavaScript porque, hey, React es realmente solo JavaScript, ¿verdad? ¿Y por qué no hablamos un poco sobre JavaScript?

Así que mi charla es JavaScript Debería Venir Con Baterías. Y déjenme explicar... En realidad, permítanme primero presentarme. Eso probablemente sea útil. Soy Luca. Soy ingeniero de software en la empresa Deno. Algunos de ustedes pueden haber oído hablar de Deno. Si no, llegaré a eso en un segundo. Trabajo en varias cosas relacionadas con Deno. Construí un marco de frontend para Deno llamado Fresh, que algunos de ustedes pueden haber visto. Y hago un montón de trabajo con standards en T-SYS39, estandarizando el lenguaje JavaScript. Y en WhatWig y W3C, estandarizando cosas como Fetch, HTML. Y soy co-presidente en Widger CG, que es un grupo de community en el W3C donde intentamos hacer que los entornos de ejecución de JavaScript del lado del servidor sean más interoperables. Así que hacer que node.js funcione mejor con Deno, y Deno mejor con CloudFlow Workers, con RUN, con lo que sea, ¿verdad?

Así que sobre mi charla de hoy. Tengo esta premisa que voy a intentar argumentar, que es que JavaScript es demasiado básico y esto es malo. Y lo que quiero decir con esto es que JavaScript realmente no tiene una biblioteca estándar extensa o herramientas predeterminadas. Sino que, más bien, todos tienen que empaquetar todo lo que quieren en su proyecto juntos por sí mismos. Y esto significa que si estás configurando un nuevo proyecto, tienes que mirar fijamente una tabla como esta y llenar el lado derecho. Necesito un formateador, así que déjame elegir un formateador. ¿Uso Dprint, uso Prettier, simplemente uso el autoformateo en VS Code, o no uso ninguno? Linting, testing, ¿quiero usar TypeScript o no? Si es así, ahora necesito que todas mis herramientas soporten TypeScript. Tal vez quiero configurar benchmarking, generación de documentation, si tengo una biblioteca. Y luego necesitas incorporar un montón de paquetes para cosas que vas a necesitar hacer. Necesitas incorporar un paquete para hacer análisis de YAML porque tienes un archivo de configuración que está escrito en YAML que otro equipo te dio.

2. Desafíos con Herramientas y Dependencias

Short description:

O tienes algún servicio que estás llamando y falla con mucha frecuencia, por lo que quieres hacer eso con reintentos, necesitas incorporar alguna biblioteca para eso. Y esto termina con cada herramienta y API que necesitas, necesitas tener un paquete más que instalar. Así que tienes esta carpeta package.json muy grande. Y esto se vuelve aún más complicado porque hay tantas herramientas diferentes por ahí. Cuando quieres usarlas juntas, las cosas se vuelven aún más complicadas.

O tienes algún servicio que estás llamando y falla con mucha frecuencia, por lo que quieres hacer eso con reintentos, necesitas incorporar alguna biblioteca para eso. Y esto termina con cada herramienta y API que necesitas, necesitas tener un paquete más que instalar.

Así que tienes esta carpeta package.json muy grande. Y esto se vuelve aún más complicado porque hay tantas herramientas diferentes por ahí. Cuando quieres usarlas juntas, las cosas se vuelven aún más complicadas. Puedes instalar ESLint. Espero que tu cerveza esté bien. Entonces, cuando instalas ESLint y quieres usarlo con TypeScript, eso no funciona de inmediato. Necesitas instalar otra herramienta llamada TypeScript ESLint. No solo instalas uno, instalas dos paquetes, agregas un montón de cosas a tu archivo de configuración de ESLint, también necesitas tener un archivo de configuración para ESLint. Lo mismo ocurre con JSX, necesitas agregar plugins para eso. ESLint es bastante bueno con ESM.

Una de las herramientas destacadas aquí con respecto al soporte de ESM todavía no podía usar archivos de configuración hasta hace un par de semanas, meses, no lo sé. Pero hay algunas realmente malas, y no quiero odiar a la gente que construye Jest. Gran parte de esto se reduce a que otros proyectos que utilizan no soportan bien las herramientas, pero Jest y TypeScript, configurar eso, no es divertido. Quieres agregar JSX a la mezcla, necesitas configurar más. Aquí, ni siquiera estás configurando para Jest, ¿estás configurando para Babel? Es como, está bien, supongo que ahora estoy usando Babel. Y ESM, simplemente no uses ESM si usas Jest. Si quieres probar en ESM, simplemente no uses Jest. Y luego tu carpeta de módulos de nodo se ve así. Tienes 100 dependencias en tu package.json, y una carpeta de módulos de nodo de 300 megabytes. Y solo tienes un archivo de configuración, y luego tienes un proyecto como este, ¿verdad? E imagina llegar a una empresa y descargas el repositorio, y quieres empezar a trabajar, y te encuentras con esto. Esto no es divertido. Esto no es algo que quieras. Solo quieres configurarlo y que todo funcione. Y quieres empezar un nuevo proyecto, no quieres tener que configurar esto. Solo quieres que funcione de inmediato. Entonces, ¿cómo resolvemos esto? Y como desarrollador de JavaScript, puedes estar preguntándote, sí, ¿cómo resolvemos esto? Pero si a veces te mueves por otros ecosistemas de lenguajes, puedes ver que algunos ecosistemas resuelven esto muy bien. Algunos lo hacen muy mal, pero algunos lo hacen realmente bien. Por ejemplo, Rust y Go.

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

Compatibilidad con Node.js en Deno
Node Congress 2022Node Congress 2022
34 min
Compatibilidad con Node.js en Deno
¿Puede Deno ejecutar aplicaciones y bibliotecas creadas para Node.js? ¿Cuáles son los compromisos? ¿Cómo funciona? ¿Qué sigue?
Deno 2.0
Node Congress 2023Node Congress 2023
36 min
Deno 2.0
Top Content
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.
Bun, Deno, Node.js? Recreando un tiempo de ejecución de JavaScript desde cero - Comprende la magia detrás de Node.js
Node Congress 2023Node Congress 2023
29 min
Bun, Deno, Node.js? Recreando un tiempo de ejecución de JavaScript desde cero - Comprende la magia detrás de Node.js
Bun, Deno y muchos otros tiempos de ejecución de JavaScript han sido elogiados, pero ¿sabes por qué? ¿Es tan fácil crear un tiempo de ejecución desde cero?

He estado investigando el secreto detrás del poder de Node.js y por qué hay tantos nuevos tiempos de ejecución de JavaScript surgiendo. Desglosando cada componente clave utilizado en Node.js, he llegado a conclusiones interesantes que muchas personas solían decir, pero en la práctica funciona de manera un poco diferente.

En esta charla, los asistentes aprenderán los conceptos utilizados para crear un nuevo tiempo de ejecución de JavaScript. Pasarán por un ejemplo de cómo hacer un tiempo de ejecución de JavaScript siguiendo lo que está detrás de escena en el proyecto Node.js utilizando C++. Aprenderán la relación entre V8 de Chrome y Libuv y qué hace que un tiempo de ejecución de JavaScript sea mejor que otros.

Esta charla cubrirá los siguientes temas:
- ¿Qué es un motor de JavaScript - V8
- ¿Por qué Node.js utiliza Libuv
- Cómo crear un tiempo de ejecución de JS desde cero
Escribiendo módulos universales para Deno, Node y el navegador
TypeScript Congress 2022TypeScript Congress 2022
25 min
Escribiendo módulos universales para Deno, Node y el navegador
Esta charla te guiará en la escritura de un módulo en TypeScript que puede ser utilizado por usuarios de Deno, Node y navegadores. Te mostraré cómo configurar el formato, el linting y las pruebas en Deno, y luego cómo publicar tu módulo en deno.land/x y npm. También comenzaré con una breve introducción sobre qué es Deno.
Fresh: un nuevo marco de trabajo web de pila completa para Deno
Node Congress 2023Node Congress 2023
24 min
Fresh: un nuevo marco de trabajo web de pila completa para Deno
Fresh es un marco de trabajo web basado en Deno y en estándares web construido para funcionar en el borde
Experimentando con Deno para facilitar las implementaciones de Kubernetes
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
Experimentando con Deno para facilitar las implementaciones de Kubernetes
Como todos sabemos, lidiar con YAML de Kubernetes no es muy intuitivo (especialmente para aquellos que recién comienzan) y cuanto más recursos y dependencias se agregan, más desordenado y complejo se vuelve el proceso. En esta charla, exploraremos cómo podemos usar TypeScript y Deno para agregar tipado, composición, reutilización de código y pruebas como alternativa a YAML, que no incluye estas capacidades, todo mientras sigue siendo declarativo y fácil de usar.

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