WebAssembly

estándar web

WebAssembly, abreviado wasm, es un formato de código binario portable (bytecode), para la ejecución íntegra en navegador de scripts de lado del cliente.

WebAssembly
World Wide Web Consortium, Mozilla, Microsoft, Google y Apple
https://webassembly.org/
Información general
Extensiones comunes .wast, .wasm
Paradigma Imperativo, no estructurado
Apareció en 2015
Diseñado por World Wide Web Consortium
Sistema de tipos Estático, fuerte
Influido por asm.js
Licencia licencia Apache

Se trata de un lenguaje de bajo nivel, diseñado inicialmente como formato destino en la compilación desde C y C++. Aunque también soporta código fuente de otros lenguajes, como Rust y Go.[1][2][3]

Diseño editar

WebAssembly se concibe como una máquina de pila portable, diseñado así para procesarse sintácticamente más rápido que Javascript, y mejorar su velocidad de ejecución.

Historia editar

WebAssembly fue anunciado el 17 de junio de 2015. El 15 de marzo de 2016 se hizo una demo ejecutando Unity's Angry Bots en Firefox, Chromium, Google Chrome, y Microsoft Edge.[4][5][6][7]

En el 2019 se crea la empresa Bytecode Alliance la cual tiene por objetivo fomentar el uso del lenguaje y fomentar bases sólidas para no solo maquetar aplicaciones móviles, sino llevar su uso diferentes estándares de desarrollo; celulares y computadoras de escritorio, así como a navegadores (Edge y Safari)[8]

Desarrollo editar

La implementación inicial de soporte para WebAssembly en navegadores se basará en los formatos asm.js, soportado por Mozilla, y PNaCl (Portable Native Client), propuesto por Google. Tras sacar una versión MVP se plantea incorporar recolección de basura,[9]​ lo que permitirá a lenguajes con este sistema, tales como Java o C# compilarse generando código wasm.

El equipo implicado en el desarrollo de WebAssembly incluye personas vinculadas a Mozilla, Microsoft, Google o Apple.

Referencias editar

  1. «WebAssembly High-Level Goals». GitHub / WebAssembly / design. 11 de diciembre de 2015. 
  2. «Announcing Rust 1.14». The Rust Programming Language Blog. 22 de diciembre de 2016. 
  3. «Go 1.11 is released - The Go Blog». blog.golang.org. 24 ago. 2018. 
  4. «Launch bug». GitHub / WebAssembly / design. 11 de junio de 2015. 
  5. Wagner, Luke (14 de marzo de 2016). «A WebAssembly Milestone: Experimental Support in Multiple Browsers». Mozilla Hacks. 
  6. Thompson, Seth (15 de marzo de 2016). «Experimental support for WebAssembly in V8». V8 Blog. 
  7. Zhu, Limin (15 de marzo de 2016). «Previewing WebAssembly experiments in Microsoft Edge». Microsoft Edge dev blog. 
  8. «Bytecode Alliance: este nuevo proyecto para llevar web Assembly a navegadores y entornos multiplataformas.». 
  9. «WebAssembly/design». GitHub (en inglés). Archivado desde el original el 5 de julio de 2016. Consultado el 8 de abril de 2017. 

Enlaces externos editar