WebAssembly
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 | |
WebAssembly, abreviado wasm, es un formato de código binario portable (bytecode) y un formato de texto correspondiente, así como interfaces de software para facilitar la comunicación entre dichos programas y su entorno anfitrión.
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]- ↑ «WebAssembly High-Level Goals». GitHub / WebAssembly / design. 11 de diciembre de 2015.
- ↑ «Announcing Rust 1.14». The Rust Programming Language Blog. 22 de diciembre de 2016.
- ↑ «Go 1.11 is released - The Go Blog». blog.golang.org. 24 ago. 2018.
- ↑ «Launch bug». GitHub / WebAssembly / design. 11 de junio de 2015.
- ↑ Wagner, Luke (14 de marzo de 2016). «A WebAssembly Milestone: Experimental Support in Multiple Browsers». Mozilla Hacks.
- ↑ Thompson, Seth (15 de marzo de 2016). «Experimental support for WebAssembly in V8». V8 Blog.
- ↑ Zhu, Limin (15 de marzo de 2016). «Previewing WebAssembly experiments in Microsoft Edge». Microsoft Edge dev blog.
- ↑ «Bytecode Alliance: este nuevo proyecto para llevar web Assembly a navegadores y entornos multiplataformas.».
- ↑ «WebAssembly/design». GitHub (en inglés). Archivado desde el original el 5 de julio de 2016. Consultado el 8 de abril de 2017.