Por qué hay que prestar atención a WebAssembly
(harshal.sheth.io)- Introducción a WebAssembly (WASM), dónde se usa hoy y predicciones sobre las áreas en las que se usará en el futuro
Características de WASM
-
Portable: se ejecuta tanto en navegador como en servidor mediante bytecode estandarizado
-
Universal: diversos lenguajes como C, Rust, Go, Python y Ruby pueden compilarse a Wasm
-
Rendimiento de nivel nativo: en promedio es entre 1.45 y 1.55 veces más lento que nativo, pero siempre más rápido que JavaScript
-
Inicio rápido: entre 10 y 100x más rápido que un contenedor Docker, y en el navegador también es más rápido que el parsing/la interpretación de JavaScript
-
Seguro: fue desarrollado pensando en la web, por lo que es seguro mediante sandboxing de memoria y limitación de capacidades
Áreas donde WASM es útil
-
Mejorar la velocidad de JavaScript
-
Proporcionar interoperabilidad entre lenguajes de programación
-
Runtime para sistemas de plugins multilenguaje
-
Uso seguro de diversas librerías de terceros como motor de sandboxing embebido
-
El futuro de la containerization: más rápido que Docker, con menor footprint y mayor seguridad
-
Plataformas FaaS/Serverless
-
Blockchain: puede aprovecharse como runtime de alto rendimiento para ejecutar smart contracts
Predicciones y oportunidades
- Nuevas arquitecturas de aplicaciones
→ será posible descomponer los microservicios en componentes aún más pequeños
- Brownfield Deployment
→ integración de contenedores Docker y Wasm en la capa de orquestación
- Framework estandarizado de Serverless/Edge
→ actualmente Fastly, Lambda y Fission construyen sus propias plataformas, pero también existe la posibilidad de que se estandarice
→ "Terraform of Serverless"
- Package Management
→ todos los lenguajes tienen su propio ecosistema de paquetes
→ WASM necesita un package manager. Existe WAPM, pero está casi inactivo
Conclusión
- Si WebAssembly es tan bueno, ¿por qué no se usa más ampliamente?
→ el marketing no ha sido bueno. Como no se limita ni a la Web ni a Assembly, el nombre mismo está mal elegido
→ el marketing se dirigió principalmente a desarrolladores web, pero su verdadero potencial va más allá del navegador
→ el estándar de WebAssembly todavía no existe
→ la interoperabilidad entre lenguajes todavía es muy deficiente
→ la experiencia para desarrolladores aún deja mucho que desear
-
Pero muchos aspectos están mejorando y dentro de 1 a 2 años alcanzará un estado aceptable
-
La actividad, el ecosistema y la comunidad relacionados con WebAssembly han entrado en una fase de crecimiento explosivo
1 comentarios
Incluso si buscas WebAssembly/WASM en GeekNews, podrás ver una enorme cantidad de artículos.
Voy a enumerar solo los principales.
WebAssembly anunciado oficialmente como recomendación del W3C https://es.news.hada.io/topic?id=1091
WebAssembly, ¿podrá expandirse fuera del navegador? Se forma la Bytecode Alliance https://es.news.hada.io/topic?id=901
MS/Google/Arm y otros se unen a la Bytecode Alliance https://es.news.hada.io/topic?id=4172
→ Organización sin fines de lucro creada con el objetivo de que WebAssembly se use más allá del navegador
Tendencias de JavaScript en 2020 y después - WebAssembly https://es.news.hada.io/topic?id=2778
Cómo WebAssembly puede ejecutar JavaScript más rápido https://es.news.hada.io/topic?id=5167
Amazon Prime Video da soporte a 8000 tipos de dispositivos usando WebAssembly https://es.news.hada.io/topic?id=5858
WebAssembly aporta nueva extensibilidad a los proxies de red https://es.news.hada.io/topic?id=1722
Lanzamiento de Wasmer 1.0 https://es.news.hada.io/topic?id=3540
WebVM, máquina virtual x86 sin servidor que se ejecuta en el navegador https://es.news.hada.io/topic?id=5893