La tecnología cambia rápidamente a nuestro alrededor. Quizás hayas oído que WebAssembly (o Wasm para abreviar) está causando sensación entre los desarrolladores y entusiastas de la tecnología. Pero ¿qué es exactamente WebAssembly y por qué es lo suficientemente importante como para que le prestes atención? Vamos a entrar en materia.
WebAssembly, fundamentalmente, es un conjunto de instrucciones binarias. Es similar a los lenguajes ensambladores de los que quizás hayas oído hablar, como x86 o ARM, pero con algunas características y garantías de seguridad nuevas. Escribes código en un lenguaje de programación como C o Rust y ese código se puede compilar en un artefacto WebAssembly. Como Wasm fue creado inicialmente para la web, su principal atractivo era que se podían ejecutar aplicações de alto rendimiento en la web a velocidades casi nativas, aunque hoy en día WebAssembly está experimentando una amplia adopción fuera del navegador también.
Una cosa que diferencia a Wasm de otros objetivos de compilación es su portabilidad. El código WebAssembly se puede ejecutar en cualquier plataforma siempre que exista un entorno de ejecución para él, independientemente de la arquitectura subyacente. Esto significa que los desarrolladores pueden escribir su código una vez y esperar que se ejecute en todas partes, ya sea en Windows, macOS, Linux, sistemas operativos móviles, en el navegador o incluso en una bombilla.
La seguridad es absolutamente primordial, especialmente en el mundo digital en el que vivimos hoy. Como tal, WebAssembly fue creado con la seguridad como un objetivo central de diseño. Tomemos un momento para pensar en lo que hacen los navegadores web. Cuando usted visita una página web, su navegador descarga un código desconocido y no confiable y lo ejecuta, algo completamente aterrador si lo piensa bien. La función de su navegador es protegerlo a usted y a su dispositivo de códigos maliciosos, y es esa misma mentalidad la que está incorporada en WebAssembly con:
WebAssembly fue diseñado para ser rápido. En comparación con JavaScript, el código Wasm se puede decodificar y comenzar a ejecutarse incluso antes de que se pueda analizar el código JavaScript. Permite nuevas experiencias en los navegadores, pero también ofrece un rendimiento casi nativo fuera del navegador con sus garantías de portabilidad y seguridad.
No se trata en absoluto de reemplazar JavaScript. Ambas son tecnologías complementarias y fueron diseñadas para complementarse en lugar de competir. JavaScript sigue siendo necesario para las partes dinámicas e interactivas de las aplicaciones web, mientras que Wasm se utiliza más para tareas computacionalmente costosas.
Dado que el código WebAssembly se ejecuta dentro de un entorno de ejecución, es fácil insertarlo en una aplicação existente, ya sea una aplicação web o una aplicação que se ejecuta en el borde o en el servidor. Esto le permite ampliar su aplicação con código escrito en casi cualquier lenguaje o incluso código no confiable de terceros. Esto hace que WebAssembly sea ideal para sistemas de complementos, ya que puede ejecutar de forma segura código dentro de su aplicação proporcionado por miembros de la comunidad o clientes. El excelente modelo de seguridad de WebAssembly hace que todo esto sea posible.
WebAssembly ha tenido un gran impacto en la informática sin servidor. En comparación con los contenedores, los módulos Wasm son diminutos: la mayoría de los módulos producidos tienen un tamaño del orden de kilobytes o megabytes de un solo dígito, mientras que los contenedores pueden tener fácilmente cientos de megabytes o varios gigabytes. Además del tamaño de almacenamiento, Wasm también resuelve el famoso problema del “inicio en frío”: el código de Wasm puede comenzar a ejecutarse en microsegundos y, por lo tanto, no necesita dejar el código en ejecución para poder responder a las solicitudes rápidamente. Podrías poner en marcha una instancia de Wasm cuando se recibe una solicitud con efectos muy mínimos en la latencia. Esto significa que los sistemas basados en WebAssembly pueden escalar hasta cero cuando no hay tráfico: una bendición tanto para la Madre Naturaleza como para su cuenta bancaria.
En mi opinión, el verdadero cambio de juego es el modelo de componentes WebAssembly. Cambiará fundamentalmente la forma en que los desarrolladores construyen y componen software a través de:
En pocas palabras, los desarrolladores pueden crear componentes de software en cualquier lenguaje que pueda producir código WebAssembly y luego componerlos fácilmente en una sola aplicação.
WebAssembly es una tecnología que merece su atención. Si usted es un desarrollador que busca agregar nuevas capacidades a su aplicação o una empresa enfocada en crear soluciones escalables y rentables, Wasm podría ser adecuado para usted. A medida que continúa madurando y ganando apoyo, WebAssembly está preparado para redefinir la forma en que pensamos e interactuamos con el desarrollo de software. No pierdas de vista WebAssembly porque no es solo el futuro: ya está aquí y está transformando el software tal como lo conocemos.
¿Quieres saber más sobre WebAssembly? Mira el podcast WebAssembly Unleashed de F5 en YouTube , Spotify o Apple Podcast .