WinterTC y Cómo los Estándares Ayudan a los Desarrolladores

Bookmark
Rate this content

A menudo escuchamos sobre estándares, ya sean web o WinterTC o de otro tipo, pero ¿por qué son apreciados y cómo ayudan realmente a desarrolladores como tú? ¡Esta charla explicará profundizando en los estándares y WinterTC especialmente!

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

Oliver Medhurst
Oliver Medhurst
5 min
17 Apr, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
WinterTC está trabajando en estandarizar los entornos de ejecución de JS para evitar el bloqueo de proveedores y proporcionar una API universal. Esto implica definir qué APIs web deberían incluirse, como URL y WebAssembly. El objetivo es crear una lista definitiva de APIs para entornos de ejecución de JS del lado del servidor.

1. WinterTC Standardizing JS Runtimes

Short description:

WinterTC está trabajando en la estandarización de los runtimes de JS, con el objetivo de evitar el bloqueo de proveedores y proporcionar una API universal. Están definiendo qué APIs web deberían incluirse, como URL y WebAssembly. El esfuerzo se centra en crear una lista definitiva de APIs para runtimes de JS del lado del servidor.

Hola, soy Oliver Metturst, y voy a hablar sobre WinterTC y cómo te ayuda. Así que los runtimes de JS hoy en día, Node es, por supuesto, el más grande y conocido. También están Deno y Bund y otros, que están surgiendo lentamente. Todos están construidos sobre motores de JS existentes, y todos están destinados a ejecutarse en el servidor. También hay runtimes de edge como Worker Deep de Cloudflare o Deno Deploy.

Así que cada runtime tiene sus propias prioridades, por lo que, por supuesto, hay muchos runtimes diferentes. Las APIs de esos runtimes son básicamente solo Node. Las APIs de Node son geniales, pero no hay un estándar. El único estándar es la documentación de Node, que es buena, pero algunos de los detalles pueden ser muy problemáticos. Así que WinterTC está trabajando en estandarizar esto, porque usar la misma interfaz sin un estándar puede causar mala interoperabilidad. Si miras Deno o Bund, todavía tienen problemas de compilación de Node, que son mitad trabajo de ingeniería de Node y mitad porque no hay especificación. La mayor parte es solo encontrar errores en el mundo real.

Esto ayuda a evitar el bloqueo de proveedores, porque en lugar de tener que reescribir toda tu aplicación o escribirla solo para las APIs de una empresa, tener solo una API universal es básicamente el sueño, porque puedes escribir una vez y ejecutar en cualquier lugar. Algunas de las APIs de Node están quedando un poco obsoletas y no se pueden cambiar debido a la compatibilidad hacia atrás. Y algunos runtimes tienen sus propias versiones junto con las de Node, lo cual no es genial. Así que WinterTC está trabajando en esto. Solía ser WinterCG alrededor de finales del año pasado, pero nos mudamos de un grupo comunitario de W3C a un comité técnico de ECMA, porque nos ayuda a trabajar más de cerca con TC FinnyLine, que redacta la propuesta de JavaScript, que ayuda a hacer las especificaciones de JavaScript, y en general es un mejor ajuste.

Así que el esfuerzo se centra principalmente en redactar especificaciones, definiendo qué API web debería incluirse, como por ejemplo URL, WebAssembly, porque todas esas APIs en realidad no están en la especificación de JavaScript. Así que actualmente, los runtimes solo incluyen lo que todos los demás están incluyendo sin una lista definitiva en ningún lugar, que es una de las principales especificaciones en las que WinterTC está trabajando. Hay algunos pensamientos y propuestas para APIs web existentes, como por ejemplo Fetch, algunos cambios, como por ejemplo restricciones de origen cruzado, no se aplican al servidor porque ese problema de seguridad no existe aquí. Sí, también hay algunas de las propias especificaciones y propuestas del TC, como por ejemplo la API CLI, pero esas todavía están muy emergentes y en desarrollo. Así que la API mínima común es esencialmente la especificación insignia, que incluye el subconjunto de qué APIs web deberían estar en los runtimes de JS del lado del servidor. Así que podría ser cualquier cosa desde Base64 con ATOP y BTOA, hasta Console, Crypto y Fetch. Y hay otras APIs emergentes, como la API CLI, que está tratando de hacer un estándar, no una forma de API de Node de hacer, digamos, variables de entorno o argumentos. Y algunas otras APIs, que todavía están en progreso. Y puedes involucrarte en wintertc.org o unirte a la sala de Matrix. Ya hay algunas especificaciones aquí, y puedes ver las especificaciones, como la API mínima común. Puedes ver que hay una lista definitiva de todo lo que un runtime del lado del servidor debería incluir, que anteriormente no existía. Y sí, todo el trabajo está en GitHub. Y hay una sala de Matrix donde puedes hablar y ayudar con PRs de especificaciones o sugerencias de ideas sobre qué hacer. Así que gracias.

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

Cómo Bun Hace que Construir Aplicaciones React Sea Más Simple y Rápido
React Day Berlin 2022React Day Berlin 2022
9 min
Cómo Bun Hace que Construir Aplicaciones React Sea Más Simple y Rápido
Top Content
BUN is a modern all-in-one JavaScript runtime environment that achieves new levels of performance. It includes BUN dev, a fast front-end dev server, BUN install, a speedy package manager, and BUN run, a fast package runner. BUN supports JSX, has optimized React server-side rendering, and offers hot module reloading on the server. The priorities for BUN include stability, node compatibility, documentation improvement, missing features in BUN install, AST plugin API, native Windows support, Bundler and Minifier optimization, and easier deployment to production. BUN's AST plugin API allows for bundle-time JavaScript execution and embedding code, potentially inspiring new frameworks.
Compatibilidad con Node.js en Deno
Node Congress 2022Node Congress 2022
34 min
Compatibilidad con Node.js en Deno
Deno aims to provide Node.js compatibility to make migration smoother and easier. While Deno can run apps and libraries offered for Node.js, not all are supported yet. There are trade-offs to consider, such as incompatible APIs and a less ideal developer experience. Deno is working on improving compatibility and the transition process. Efforts include porting Node.js modules, exploring a superset approach, and transparent package installation from npm.
Nunca te preocupes por CORS nuevamente
JSNation US 2025JSNation US 2025
28 min
Nunca te preocupes por CORS nuevamente
Talk on Bund: Overview of Bund, its speed optimization, components like runtime, package manager, test runner, and bundler. Efficient features include fast npm manager, pnpm lockfile support, Jest-compatible test runner, and optimized runtime components. Built-in features like modern password hashing, WebSocket server, file glob API, and database clients. API design focuses on common use cases and optimization. Enhanced JavaScript functionality with SIMD, native code, and performance improvements. Challenges in JavaScript productivity, BUN adoption, deployment, and support. React support, community involvement, security, Next.js compatibility, and transition.
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
The Talk explores the magic behind Node.js and delves into its components, including V8, libuv, and the C++ bridge. It discusses the workflow and execution process, the use of NodeMod, and the understanding of console functions. The Talk also covers Node.js functions and scheduling, the introduction of runtimes, and the collaboration between JavaScript runtimes. It concludes with insights on content production, the choice of Node.js, and the inspiration behind it.
Evaluar todas las cadenas! - JavaScript endurecido
Node Congress 2023Node Congress 2023
8 min
Evaluar todas las cadenas! - JavaScript endurecido
NPM packages can be potentially dangerous, so it's important to be proactive in managing them. Lava Mode allows you to detect and investigate suspicious packages before deploying your app. Lavamote prevents unauthorized access to sensitive resources by isolating dependencies and using hardened JavaScript. Lava Mode makes it easier to analyze obfuscated files and understand their actions.
Crea tu propio tiempo de ejecución de JavaScript
Node Congress 2023Node Congress 2023
21 min
Crea tu propio tiempo de ejecución de JavaScript
This Talk introduces Deno, a custom JavaScript runtime similar to Node.js, and discusses the benefits of using a custom runtime. It explores the process of building a custom runtime with Deno in Rust, including the integration with Cargo and the ability to mix and match crates and APIs. The Talk also covers the implementation of the setTimeout function in both Run.js and Runtime.js, and provides examples of how to fix errors and implement additional functions. Overall, the Talk highlights the flexibility and possibilities of creating custom runtimes with Deno.

Workshops on related topic

Construye aplicaciones peer-to-peer con Pear Runtime
JSNation 2024JSNation 2024
152 min
Construye aplicaciones peer-to-peer con Pear Runtime
WorkshopFree
David Mark Clements
David Mark Clements
Aprende cómo construir rápidamente aplicaciones peer-to-peer con Pear Runtime. No se requieren servidores. Comprende los paradigmas peer-to-peer y construye aplicaciones a partir de bloques de construcción bien definidos. En este masterclass se cubrirá cómo crear aplicaciones de escritorio y terminales (con discusión para móviles) que funcionan completamente peer-to-peer desde cualquier lugar del mundo. Al final de este masterclass, deberías saber cómo construir un nuevo tipo de aplicación altamente escalable con costos infraestructurales reducidos (~0) junto con arquitecturas adecuadas y mejores prácticas para aplicaciones peer-to-peer. Del creador de Pear Runtime y la compañía que nos trae keet.io. Tabla de contenido:- Introducción a Pear- Preguntas y respuestas iniciales- Configuración- Creación de una aplicación de escritorio Pear- Compartir una aplicación Pear- Ejecutar una aplicación Pear- Creación de una aplicación terminal Pear- Lanzamiento de una aplicación Pear- Discusiones arquitecturales- Preguntas y respuestas finales