Durante más de dos décadas, JavaScript fue el único lenguaje de programación que podía ejecutarse en los navegadores. Otros lenguajes como Python, C++ y Go fueron principalmente para construir el lado del servidor de aplicaciones y servicios web.
JavaScript funcionó bastante bien, pero muchos otros lenguajes de programación son más rápidos. Hay muchos beneficios que las aplicaciones web pueden aprovechar al ejecutar otros lenguajes de programación de mayor rendimiento directamente en el navegador.
WebAssembly ofrece una opción eficiente, abierta y segura que forma parte de la plataforma web abierta. Puede usarlo para crear aplicaciones que se ejecutan en navegadores, servidores y en otros entornos.
Introducción a WebAssembly
WebAssembly (WASM) es un lenguaje estandarizado W3C portátil, eficiente y de bajo nivel. Define un formato de código e interfaces para que los programas interactúen con plataformas en la web.
Puede compilar la mayoría de los lenguajes de programación en el formato de código binario de WebAssembly. Los navegadores pueden interpretar y ejecutar el código WASM resultante tal como lo hacen con JavaScript normal. También puede ejecutar WebAssembly junto con el código JavaScript para obtener un mayor rendimiento de la aplicación y la interoperabilidad entre los dos.
WebAssembly se convirtió en un estándar W3C en 2019, con soporte en muchos lenguajes de programación. De acuerdo a Hecho con WebAssembly, ya hay muchos proyectos populares que usan WebAssembly para enviar software rápido y seguro a sus usuarios.
Muchos lenguajes de programación, incluidos aquellos que son específicos del lado del servidor, admiten WebAssembly. Estos incluyen Rust, Go, Python, C++, TypeScript, Java, PHP y Ruby. Revisar la recurso impresionante-wasm-langs para conocer los lenguajes compatibles con WebAssembly y los paquetes que puede usar con ellos.
aquí hay un ejemplo Programa WebAssembly de Tutorials Point que devuelve un máximo de dos enteros:
La sintaxis de WebAssembly es relativamente detallada en comparación con JavaScript, pero eso no debería ser un problema. No necesitará aprender la sintaxis ya que WebAssembly será el objetivo de compilación para los programas que escriba en su idioma preferido.
Cómo funciona WebAssembly
WASM existe como un objetivo de compilación para que otros lenguajes de programación se transpilen. Puedes escribir en tu lenguaje de programación favorito y compile el código fuente en el código de bytes WASM que se ejecuta en el cliente. Traducirlo a código de máquina nativo significa que puede ejecutarse a alta velocidad, generalmente más rápido que JavaScript.
Una de las características críticas de WASM es la interoperabilidad de JavaScript. Puede importar módulos WASM a una aplicación web y exponer las funciones WASM para su uso en código JavaScript. Los marcos de JavaScript pueden aprovechar WASM para un mayor rendimiento.
WASM utiliza un modelo de ejecución en espacio aislado similar a JavaScript. WASM interactúa con la máquina host mediante ABI (interfaz binaria de aplicación) como la Interfaz del sistema WebAssembly que proporciona acceso a recursos y otros servicios del sistema según los requisitos del programa.
Muchos navegadores modernos admiten WASM, incluidos Chrome, Microsoft Edge, Mozilla Firefox, Opera y Safari. Idiomas como Go y Soporte de óxido WASM fuera de la caja.
Por qué la Web necesita WebAssembly
JavaScript tiene una funcionalidad limitada por diseño. no es uno de los lenguajes más rápidos o de mayor rendimiento desde que comenzó como un lenguaje de secuencias de comandos para la web. Aunque hay muchos tiempos de ejecución en los que JavaScript se ejecuta a diferentes velocidades, hay más rápidos y más lenguajes de alto rendimiento que WebAssembly puede traer a la web para casos de uso como juegos, videos y música.
WebAssembly también ofrece más portabilidad y flexibilidad a los idiomas que no se ejecutan en la web. La introducción de más idiomas en la web (la plataforma de código abierto más popular) debería resultar en una experiencia mejorada en general.
La adopción de WebAssembly es rápida
Muchas empresas y desarrolladores están creando aplicaciones con WebAssembly. Google, Dropbox y Cloudflare utilizan activamente WebAssembly en algunas de sus aplicaciones.
WebAssembly es popular entre los desarrolladores de Python, C++ y Rust. Los desarrolladores de Python suelen utilizar Pyoidide y PyScript, los desarrolladores de C++ y Emscripten, y los desarrolladores de Rust con Percy, Yew, Sycamore, MoonZoon y el marco Seed.