WebAssembly, la nueva tendencia del desarrollo web

Imagina que eres un chef de un restaurante de comida internacional, en el cual cada comensal habla un idioma diferente y tiene gustos particulares. En esta analogía, la cocina es el navegador web, y los clientes son distintos programas que se quiere ejecutar para el desarrollo.

Antes del WebAssembly, para preparar un plato (desarrollar un programa) que originalmente se escribió en otro idioma que no entendías, había que traducirlo a uno más familiar (como JavaScript). Lo cual podría ser lento, complicado y puede que el resultado final no se apegará del todo al platillo original.

Hoy con WebAssembly (WASM) es como tener un libro de recetas mágico con el que se puede hacer cualquier platillo sin importar el idioma (programa), en el que se escribió, ya que se traduce instantáneamente a instrucciones que tu cocina entiende. Así se pueden preparar platillos de forma rápida y que reproduzcan el sabor original.

De manera que con webAssembly, los programadores pueden usar código escrito en lenguajes como Rust u otro y compilarlo para que el navegador lo ejecute como el código nativo. Lo anterior es una gran ventaja que permite muchas posibilidades, por ejemplo, que juegos, aplicaciones complejas o herramientas de video se ejecuten en el navegador con un rendimiento similar al de una aplicación de escritorio.

Para los programadores WebAssembly es relevante por varias razones ya que les ofrece nuevas oportunidades y desafíos en el desarrollo web, a continuación algunas razones para entender su importancia:

  • Rendimiento mejorado en la web: Permite crear aplicaciones web más eficientes y potentes. Ya que da la oportunidad de ejecutar código en el navegador a velocidades cercanas al código nativo, lo que es relevante para aplicaciones web intensivas como juegos o simuladores.
  • Permite más posibilidades para la programación web. JavaScript era el lenguaje que dominaba en el desarrollo web del lado del cliente. Con WebAssembly es posible emplear lenguajes como C, C++ o Rust para crear aplicaciones web.
  • Interoperabilidad: Con WebAssembly es más fácil la interoperabilidad entre los diferentes lenguajes de programación en un entorno web, así es posible combinar varios lenguajes y tecnologías.
  • Seguridad: Debido a que WebAssembly se ejecuta en un sandbox seguro dentro del navegador, se limita el acceso a las funciones del sistema subyacente y reduce el riesgo para algunas vulnerabilidades.
  • Portabilidad: El código compilado en WebAssembly es portátil y se ejecuta en cualquier navegador que soporte WASM sin importar el sistema operativo.

Además WebAssembly sigue evolucionando y no sólo se limita a navegadores web, se empieza a aplicar en otros entornos, es el caso de la nube, el IoT y dispositivos móviles.