0%
Inicio 9 Glossary Item 9 Wasm (WebAssembly)
« Back to Glossary Index

Nivel Principiante

Imagina que tu navegador solo entiende un idioma para hacer programas (JavaScript), pero los desarrolladores saben hablar muchos otros idiomas para hacer programas más rápidos y potentes. Wasm es como un traductor mágico que permite a los programas hechos en otros idiomas, como C++ o Rust, funcionar directamente en tu navegador. Esto hace que los juegos, editores de fotos o cualquier programa complicado en una página web sean tan rápidos como los que instalas en tu computadora.

Nivel Intermedio

Wasm (WebAssembly) es un formato de instrucción binaria para una máquina virtual basada en una pila. Es un estándar abierto, creado por el W3C, que permite ejecutar código compilado desde otros lenguajes (como C, C++, Rust o C#) directamente en el navegador web a una velocidad casi nativa. Wasm no reemplaza a JavaScript, sino que lo complementa. Mientras que JavaScript sigue siendo ideal para la manipulación del DOM y la lógica de la interfaz de usuario, Wasm es perfecto para tareas computacionalmente intensivas, como gráficos 3D, simulaciones científicas, videojuegos o compresión de video.

Nivel Avanzado

Técnicamente, WebAssembly es un lenguaje de bajo nivel con un formato binario compacto. Se ejecuta en un entorno de sandbox en el navegador, lo que garantiza la seguridad y el aislamiento del sistema. El proceso de ejecución es el siguiente:

  1. Compilación: El código fuente (escrito en un lenguaje como C++ o Rust) se compila a un módulo .wasm (el formato binario de WebAssembly).
  2. Transmisión y Despliegue: El navegador descarga este módulo .wasm. Gracias a su formato binario y compacto, la descarga es extremadamente rápida.
  3. Instanciación: El navegador crea una «instancia» del módulo, que es la máquina virtual que contiene la memoria y las funciones que se pueden ejecutar.
  4. Ejecución: El navegador puede llamar a las funciones del módulo .wasm desde JavaScript, y estas se ejecutan a una velocidad muy cercana a la nativa, a menudo superando a JavaScript en tareas complejas.

La interoperabilidad con JavaScript es un pilar de Wasm. El código JavaScript puede crear instancias de módulos Wasm, pasarles datos y llamar a sus funciones. A su vez, los módulos Wasm pueden llamar a APIs del navegador a través de JavaScript, aunque la integración directa con el DOM todavía es limitada. El ecosistema de Wasm está en constante evolución, con el desarrollo de la WebAssembly System Interface (WASI) para permitir su ejecución fuera del navegador (en servidores o dispositivos IoT), lo que lo posiciona como una tecnología clave en el futuro de la computación.

« Volver al índice del glosario