WebAssembly: 5 predicciones para 2023
WebAssembly (a menudo abreviado como Wasm) en 2022 entró en foco. Nuevas startups de Wasm llegaron a la escena. Las empresas establecidas han anunciado su apoyo a Wasm. Bytecode Alliance lanzó una serie de estándares Wasm. Él Base de computación nativa en la nube organizó dos eventos WasmDay. Y uno de los mayores usuarios de Wasm fue Figma. Adquirido por Adobe por la asombrosa suma de 20.000 millones de dólares.
En esencia, Wasm es un formato binario. Se pueden compilar muchos idiomas diferentes en el mismo formato, y este formato binario se puede ejecutar en muchos sistemas operativos y arquitecturas diferentes. Java y .NET son similares en este sentido, pero Wasm tiene una diferencia clave: el tiempo de ejecución de Wasm no depende de los archivos binarios que ejecuta.
Las aplicaciones Wasm están en un espacio aislado y solo pueden acceder a los recursos (como archivos o variables de entorno) que el usuario autorice explícitamente. Wasm tiene muchas otras características deseables (como un rendimiento extraordinario), pero es el modelo de seguridad lo que hace que Wasm sea útil en una variedad de entornos, desde navegadores hasta el perímetro e IoT, e incluso en la nube.
Si la tendencia de Wasm en 2022 es algo por lo que pasar, Wasm ahora tiene tanto éxito fuera del navegador como (si no más) que dentro de él. Y esta tendencia es la base de los eventos que sucederán en 2023. 2023 se perfila como el año de Wasm, ya que Wasm aparece en todas partes, desde dispositivos integrados hasta grandes centros de datos. Aquí están mis cinco predicciones para el ecosistema Wasm de 2023.
1. El modelo de componentes será el momento de división
Los estándares rara vez son la parte más interesante de un ecosistema. Y con un nombre como ‘Modelo de componentes’, la exageración está realmente en juego. Pero detrás del aburrido nombre se encuentra la innovación más importante que Wasm trae al mundo del software.
El modelo de componentes describe cómo los binarios de Wasm interactúan entre sí. Más específicamente, dos componentes pueden decirse entre sí qué servicios brindar y qué expectativas cumplir. Y luego los módulos Wasm pueden usar las habilidades de los demás. Proporciona a los desarrolladores de software una nueva forma de crear aplicaciones. En lugar de buscar bibliotecas en el idioma de origen de su elección, los desarrolladores pueden declarar qué componentes necesita el programa o, de manera más abstracta, qué funciones necesita la aplicación, y luego el tiempo de ejecución de Wasm puede ensamblar el conjunto correcto de componentes en nombre del usuario.
dan gohmanUno de los colaboradores más prolíficos de Wasm escribió uno excelente publicación general. Y joel dados Escrito por Fermión mirada técnica para los más interesados en el interior.
El modelo de componentes está madurando rápidamente y ya están apareciendo aplicaciones de referencia. 2023 será el año en que el modelo de componentes comience a redefinir cómo escribimos software.
2. Serverless será el punto ideal de Wasm
En los últimos años, la promesa de serverless ha sido clara. AWS Lambda nos abrió los ojos a un modelo de programación nuevo y más simple en forma de Funciones como servicio (FaaS). Sin embargo, mientras se desarrollaba el impulso detrás de los conceptos sin servidor, la tecnología subyacente era costosa de operar. Y este costo se traslada a los usuarios. Además, si bien los tiempos de inicio de las aplicaciones FaaS son más rápidos que los de los contenedores, siguen estando por debajo de las expectativas actuales de rendimiento web. Hay margen de mejora en la velocidad.
hay wasm cambió su potencial paisaje sin servidor. Con tiempos de inicio casi instantáneos, tamaños binarios pequeños y neutralidad de plataforma y arquitectura, los binarios Wasm se pueden ejecutar con una fracción de los recursos necesarios para ejecutar la infraestructura sin servidor actual.
Si la economía en su conjunto entra en un período de incertidumbre económica, es bueno saber que Wasm nos ayudará a cubrir nuestros costos mientras avanzamos en el modelo de características sin servidor que los desarrolladores adoran. Los tiempos de inicio más rápidos de Wasm y el consumo simple de recursos requieren menos poder de cómputo que un sistema basado en contenedores y es más barato de usar que los sistemas FaaS como Lambda.
La comprensión de que Wasm podía cambiar el panorama sin servidor condujo a la creación de Fermyo. Girar. Spin es una herramienta orientada a desarrolladores para descargar, crear, probar e implementar funciones sin servidor. En el corazón de Spin está su tiempo de ejecución basado en Wasm. Es de código abierto y ya es compatible con La nube de fermiones y Microsoft Azure AKSHay más en camino en 2023.
Más pequeño, más rápido, más barato, mejor. Esta es la combinación que Wasm trae al mundo serverless en 2023.
3. Las aplicaciones de Wasm se almacenarán en DockerHub y registros de contenedores
Gestión de paquetes. Es una característica necesaria de todo, desde lenguajes de programación hasta sistemas operativos y orquestadores de clústeres como Kubernetes. Y cada vez que inventamos una nueva tecnología, parecemos condenados a (re)inventar el sistema para administrar los activos de esa tecnología.
A principios de 2022, vimos varios métodos en competencia para administrar objetos Wasm. Ninguno de ellos se levantó. Un pequeño equipo de ingenieros promovió persistentemente el Registro OCI (también conocido como Registro Docker) como un sistema para mantener Wasm. Pero el problema era que el formato del Registro OCI no admitía artefactos que no fueran contenedores. Era para almacenar imágenes de Docker.
Y luego, un cambio importante en los registros de la OCI cambió el panorama. OCI (Iniciativa de contenedores abiertos) es un pequeño organismo de estándares dedicado a administrar estándares en torno a contenedores OCI (o contenedores Docker, como solíamos llamarlos). OCI define el formato del contenedor, el modelo de seguridad y el tiempo de ejecución. También define cómo se transfieren las imágenes del contenedor entre el registro y el cliente.
Cerca de fines de 2022, el grupo de trabajo de Registros de OCI anunció una forma oficial de almacenar cosas que no sean imágenes de contenedores. Esto puede incluir cosas como gráficos de Helm, fotos o (adivinaste) aplicaciones de Wasm. Esta nueva característica se llama “almacenamiento de artefactos”.
Cuando DockerHub apoyo anunciado la señal de esta nueva especificación de almacenamiento de artefactos resonó en todo el ecosistema Wasm: en lugar de reinventar la rueda, simplemente podemos almacenar nuestras aplicaciones en registros OCI como DockerHub. Para que esto se convierta en una realidad, se debe realizar un nuevo trabajo en el ecosistema Wasm, pero este trabajo está en curso. 2023 será el año en que los programas Wasm encuentren un hogar en los registros de la OCI.
4. Todos los principales lenguajes de programación tendrán soporte Wasm
El soporte lingüístico es un ingrediente crítico para el éxito de Wasm. Con cada nuevo lenguaje que se puede compilar en Wasm, una nueva comunidad de desarrolladores obtiene acceso a los beneficios de Wasm. Casi todos los 20 principales lenguajes de programación son Agregar soporte wasm.
2022 vio tres saltos gigantes para Wasm. Pitón soporte adicional. Después Rubí. En octubre, .NET, que durante mucho tiempo adoptó Wasm en el navegador, agregó un soporte más profundo para Wasm, lo que le permitió funcionar. fuera del navegador.
Tres idiomas adicionales han progresado un poco este año, pero 2023 marcará el año en que esos idiomas estén listos para usarse. Estos tres lenguajes son Kotlin, Dart y por supuesto el lenguaje de programación más popular del mundo: JavaScript.
Las comunidades de Kotlin y Dart participan activamente en la creación de objetivos de compilación de Wasm. Aunque ambos esperaban que madurara un estándar Wasm específico: un estándar que describe la recolección de basura, un objeto de tiempo de ejecución en el lenguaje que permite limpiar la memoria durante la ejecución del programa. Nuestra predicción es que Propuesta Wasm-GC Estará disponible y será compatible a principios de 2023, por lo que Kotlin y Dart lanzarán pronto los compiladores Wasm.
Nuestro último idioma es tan importante que merece una previsión especial.
5. JavaScript se convertirá en el lenguaje Wasm más popular
De cualquier lenguaje, JavaScript tiene la relación más compleja con Wasm. Como se pretendía originalmente, Wasm interactuará con JavaScript en el navegador. De hecho, la promesa original de Wasm era ampliar la compatibilidad con el idioma del navegador afuera JavaScript.
Pero las suposiciones tienen una forma de desvanecerse frente a los casos de uso del mundo real.
Con Wasm fuera del navegador, muchos desarrolladores quieren poder ejecutar su código JavaScript donde sea que puedan ejecutar Wasm. Esto se hace mejor haciendo posible ejecutar JavaScript dentro del tiempo de ejecución de Wasm (no junto a él, como en un navegador). En 2022, vimos varios proyectos nuevos de Wasm destinados a llevar JS al nuevo tiempo de ejecución. La mayoría de estos utilizaron un gran proyecto de código abierto llamado QuickJS.
QuickJS tiene muchas ventajas, la principal es que cumple totalmente con el último estándar de JavaScript. Pero no está diseñado para ser el motor de JavaScript más rápido o más robusto. La implementación es tan fácil que muchos de los primeros proyectos de Wasm encontraron formas de compilar el intérprete en Wasm y luego ejecutar JavaScript en el tiempo de ejecución de Wasm.
Pero está el tiempo de ejecución de JavaScript subyacente que entra en juego. Él Mono araña El motor de Mozilla, conocido por su rendimiento y robustez, se traslada al mundo de Wasm. Es más popular para usar en el navegador Mozilla Firefox, pero también se puede usar fuera del navegador. Como tiempo de ejecución que puede optimizar continuamente los scripts que ejecuta, el motor SpiderMonkey será el motor JS más rápido del mundo Wasm. La información preliminar sugiere que se puede ejecutar JavaScript que se ejecuta dentro de la versión Wasm de SpiderMonkey, debido a las optimizaciones que se pueden realizar en este entorno. 13 veces más rápido que JS en el navegador.
JavaScript es el lenguaje de programación más popular del mundo. Con tiempos de ejecución de Wasm como QuickJS y SpiderMonkey, el potencial de Wasm de repente está disponible para una gran comunidad de desarrolladores. Sí, C fue el primer lenguaje de programación compatible con Wasm. Y sí, Rust tiene bastante apoyo. Por supuesto, también vemos a Python y Ruby haciendo movimientos. Pero JavaScript se lanzará a la estratosfera de Wasm.
Conclusión: 2023 es el año de la Voluntad
He hecho cinco predicciones audaces sobre lo que sucederá dentro del ecosistema Wasm. Y a medida que estos hitos se materialicen, Wasm se volverá aún más útil como tecnología de propósito general más allá del navegador. Al comienzo del artículo, sugerí que 2023 debería ser el año de Wasm. Teniendo en cuenta estas cinco predicciones, es fácil ver por qué: las nuevas características, los casos de uso inteligente, la integración con Docker Hub y la amplia compatibilidad con idiomas se combinan para hacer de esta una tecnología fácil de usar para los desarrolladores.