LinuxParty
Inicialmente, WASM prometía mejoras en el rendimiento y una mayor portabilidad para las aplicaciones web, pero ahora está teniendo un impacto en una cantidad cada vez mayor de entornos.
En solo cuatro cortos años, WebAssembly se ha liberado de sus orígenes como una tecnología útil basada en navegador y ahora impulsa algunas de las aplicaciones distribuidas más complejas del mundo, desde plataformas de transmisión como Disney+ hasta la potencia del comercio electrónico Shopify.
El viaje de WebAssembly más allá del navegador
WebAssembly , o WASM para abreviar, fue desarrollado por World Wide Web Consortium (W3C) y publicado por primera vez en 2018. Es, en sus palabras, un "objetivo de compilación", lo que significa que los desarrolladores pueden traer su propio código, generalmente Rust , C++ o AssemblyScript , y WebAssembly lo compila en un código de bytes para ejecutarlo en el navegador web a alta velocidad.
Luego, en 2019, Mozilla presentó su Interfaz del sistema WebAssembly (WASI) para acceder a los recursos del sistema operativo y sacar WebAssembly del navegador para ayudar a ejecutar aplicaciones de back-end de manera similar.
Como resultado, "los desarrolladores están comenzando a impulsar WebAssembly más allá del navegador, porque proporciona una forma rápida, escalable y segura de ejecutar el mismo código en todas las máquinas", escribió el ingeniero principal senior de Fastly, Lin Clark , en una publicación de blog de 2019.
Este cambio en el alcance de WebAssembly incluso llevó al cofundador de Docker, Solomon Hykes, a tuitear en 2019 que “si WASM+WASI existiera en 2008, no habríamos necesitado crear Docker. Así de importante es. WebAssembly en el servidor es el futuro de la informática. Una interfaz de sistema estandarizada era el eslabón perdido. ¡Esperemos que WASI esté a la altura!”
Eso es un gran elogio y, de hecho, para sus mayores exponentes, como Kevin Hoffman, el creador del proyecto de espacio aislado de CNCF WasmCloud , WebAssembly está a punto de cambiar la industria como lo fue Docker en 2013 .
“Una de las cosas que queremos en nuestras soluciones en la nube es que sean pequeñas, rápidas, seguras y portátiles”, dijo Hoffman a InfoWorld. "Cuando apareció WebAssembly para proporcionar esto... eso hizo sonar todo tipo de alarmas.
Esta expansión de WebAssembly ha visto aumentar el interés en la tecnología en un 43 % en Stack Overflow desde principios de 2021.
Bloomberg: Definiendo el futuro de Terminal con WebAssembly
"El aumento potencial de la velocidad de ejecución de algunos cálculos es donde WebAssembly abre oportunidades para que mejoremos el rendimiento de nuestros componentes basados en la web", dijo a InfoWorld Itay Dafna, ingeniero de software de Bloomberg especializado en análisis cuantitativo. Dafna y su equipo comenzaron a ver el potencial de WebAssembly para permitir a los usuarios compartir sus resultados fuera de las plataformas de Bloomberg como un componente web integrado e independiente. "Si escribimos modelado de datos y lógica de cómputo en WebAssembly, podemos ejecutarlo en el kernel de Python y también en otros entornos, como la web, con resultados idénticos", dijo, enfatizando que poder ejecutar Python y JavaScript La versión de la aplicación con "resultados idénticos" no se había pensado anteriormente. Sin embargo, Dafna admite que poner esto en producción "no fue fácil", principalmente porque el código de Python que se ejecuta en WebAssembly actualmente no viene con un formato de máquina virtual estandarizado.
Aunque WebAssembly funciona a la perfección en el navegador hoy en día, para cualquier cosa escrita en Python, "tienes que crear el tuyo propio, y eso requirió mucho trabajo pesado y código de andamiaje para ser escrito por nosotros". Esto limita la promesa de "escribir una vez, ejecutar en cualquier lugar" de WebAssembly. Dicho esto, Dafna y la comunidad de ingeniería en general de Bloomberg siguen comprometidas con WebAssembly. "Todavía estamos buscando más lugares para integrarlo donde tenga sentido y, una vez que se agreguen más funciones a los estándares del lenguaje WebAssembly y haya más herramientas disponibles para los desarrolladores, será mucho más fácil de adoptar".
La BBC: Moviéndose al metaverso con WebAssembly
Si bien el iPlayer actual tiene múltiples bases de código de aplicación de cliente para varias plataformas de destino , WebAssembly tiene el potencial de convertirse en una capa de traducción común para todas estas plataformas y más en el futuro. "Creemos que WebAssembly brinda la solución perfecta para los desafíos que enfrentamos", dijo Pearce durante una sesión en la Cumbre WebAssembly 2021 . "WebAssembly permite a los desarrolladores internos y externos crear experiencias individuales en el lenguaje y las herramientas de su elección, como un motor de juegos, para producir un binario universal que es a la vez eficaz y aislado de otras experiencias en la plataforma". "Lo que hace WebAssembly allí es permitirnos descargar el código de la aplicación y confiar en que no interferirá con otras aplicaciones en la plataforma", dijo Pearce.
Sin embargo, adoptar WebAssembly en la BBC no ha sido una panacea. Pedirle a los ingenieros que cambien de JavaScript a C++ o incluso a Rust va a ser "un gran desafío" para Pearce y su equipo, y todavía hay algunos vacíos importantes que los ingenieros deben llenar para que WebAssembly cumpla su promesa. Por ejemplo, cuando construyeron el SSP, los ingenieros de I+D de la BBC pronto descubrieron que el código adhesivo necesario para que el tiempo de ejecución de Wasmtime pudiera dar acceso al módulo WebAssembly a varias funciones multimedia aún no existía.
Amazon y Disney: WASM cumple con las plataformas de transmisión
Los ingenieros de Disney comenzaron a construir este tiempo de ejecución portátil en 2019, comenzando en C y con la aplicación cliente en Rust, apuntando a WebAssembly y alojado de forma remota en AWS. Hablando de toda la pila de ADK, y no solo de WebAssembly, Hanley y su equipo concluyeron que "solo con esta tecnología podemos satisfacer la demanda del mercado a escala y controlar nuestra experiencia mientras nos aseguramos de que nuestros clientes estén satisfechos con una experiencia constante en todo momento". De manera similar, los ingenieros que trabajan en el servicio de transmisión de video Prime Video de Amazon recurrieron a WebAssembly como medio para actualizar mejor su aplicación en una gama cada vez mayor de dispositivos y plataformas. En agosto de 2020, Ene y su equipo comenzaron a investigar cómo WebAssembly podría ejecutar tareas que estaban realizando los componentes de JavaScript.
Qué sigue para WebAssembly
Una cosa que es innegable a partir de estos tres ejemplos es la gran cantidad de trabajo pesado que aún requieren los ingenieros para hacer de WebAssembly una solución empresarial verdaderamente viable. «En este momento, es para las personas que pueden manejar las cadenas de herramientas o tienen el tipo de equipos que las configuran», dijo Ryan de Gartner, «pero debería ser para todos».
«Las herramientas han crecido mucho, pero aún queda mucho trabajo por hacer durante el próximo año para mejorar esa historia de herramientas para la experiencia normal de los desarrolladores y poder compilar en WASM y ejecutarlo fuera del navegador». dijo Luke Wagner, ex desarrollador de Mozilla que ahora trabaja en Fastly y es copresidente del grupo de trabajo de WebAssembly.
Hoffman de WasmCloud dijo: «Lo que creo que llevará a WebAssembly al límite como el estándar de facto para aplicaciones distribuidas es cuando todos los principales compiladores de lenguajes puedan apuntar y convertir el código de red básico en algo que sea compatible con WebAssembly, para que simplemente funcione».
A pesar de todo su progreso hasta ahora, algunos observadores de la industria, como Ryan de Gartner, no ven que WebAssembly alcance nunca el tipo de crecimiento explosivo que tuvo Docker.
-
Internet
- El director de inteligencia artificial de Microsoft afirma que la inteligencia artificial conversacional reemplazará a los navegadores web
- Cómo usar una VPN en Linux y por qué deberías hacerlo
- La muerte lenta del hipervínculo
- Cómo cambiar dirección IP (modo gráfico), por qué querría hacerlo y cuándo no debería hacerlo
- 10 comandos "IP" útiles para configurar interfaces de red
- Cómo configurar conexiones IP de red usando 'nmcli' en Linux
- Configuración de una IP Estática en una Tarjeta de Red en Linux.
- ¿Migrar a la nube? Marque esta lista de verificación
- Nuevo estándar de Internet L4S: el plan silencioso para hacer que Internet se sienta más rápido
- Nextcloud y Roundcube se Fusionan para Impulsar la Descentralización en la Productividad en la Nube
- Los 10 mejores servidores proxy inversos de código abierto para Linux
- Una guía para principiantes para crear conexiones (Bonding) y puentes de red (Bridging) en Linux
- Conectar dos redes Locales alejadas creando de un Puente Transparente
- Crear un puente de red transparente "bridge" para conectar dos redes locales remotas
- Crear un Puente de Red o Bridge