13/06/2023 | Consejos tecnológicos,Tecnologías

WebAssembly y su utilización en la actualidad

En anteriores posts se ha podido ver qué es WebAssembly y cómo trabajar con él a través de unos sencillos ejemplos. Básicamente, WebAssembly es una tecnología que nos permitirá no solo conseguir un mejor rendimiento en aplicaciones web, sino poder utilizar aplicaciones descritas en lenguajes como C++, C, Rust o Python en navegadores web.

Con el paso de los años, el uso de esta tecnología ha ido abriendo paso a que herramientas que solo estaban disponibles a través de aplicaciones de escritorio ya estén accesibles a través de páginas web. Esto se ha debido a los beneficios del uso de WebAssembly, el cual conlleva algunas ventajas como pueden ser:

  • Rendimiento de alto nivel: gracias a la ejecución de código de bajo nivel en el navegador, las aplicaciones que utilizan WebAssembly pueden realizar operaciones intensivas en tiempo real sin problemas.
  • Integración con bibliotecas y recursos existente: debido a la capacidad de utilizar librerías descritas en lenguajes como C++, C, Rust o Python entre otros, las aplicaciones web que utilicen WebAssembly pueden incorporar una gran cantidad de funcionalidades las cuales podrían no ser aplicables o difícilmente adaptables sin el uso de esta tecnología.
  • Portabilidad de aplicaciones: al tener la posibilidad de pasar aplicaciones de escritorio a aplicaciones web, ya no se tendrá que depender de tener instalado en nuestro ordenador la aplicación en concreto, además de las posibles herramientas o utilidades que ésta lleve asociada. Al poder ejecutar la aplicación en un navegador web se podrá trabajar con cualquier dispositivo y cualquier sistema operativo con conexión a internet y un navegador web que sea compatible con WebAssembly.
  • Interfaces más sencillas e intuitivas: al trabajar en un entorno web se podrá aplicar a las aplicaciones que llevan asociadas una gran complejidad, interfaces de usuario más amigables, fáciles de utilizar y altamente personalizables.
  • Uso compartido: WebAssembly también facilita la colaboración y el uso compartido de herramientas integradas en la web. El uso de herramientas en un navegador facilitará a los usuarios trabajar de forma colaborativa en tiempo real, sin importar su ubicación geográfica. Además, los proyectos editados se pueden compartir fácilmente a través de enlaces o incrustar en sitios web y plataformas de redes sociales, lo que amplía la audiencia y la visibilidad de los trabajos realizados.

Hemos descrito algunas de las ventajas de WebAssembly y, en este punto, podríamos pensar que es una gran opción para tener disponible en una página web alguna aplicación de escritorio que hayamos desarrollado o para utilizar cualquiera de sus ventajas en futuras aplicaciones web que vayamos a desarrollar. Aún así, siempre viene bien echar un vistazo alrededor y ver lo que existe actualmente con esta tecnología; es decir, aplicaciones web que utilicen esta tecnología y así conocer un poco más lo que se puede llegar a conseguir con su uso. Es por ello que a continuación veremos algunos ejemplos de aplicaciones que, a día de hoy, hacen uso de WebAssembly, viendo la diversidad y utilidad de éstas en distintos campos:

Aplicaciones de edición de audio y vídeo: la edición de audio y vídeo ha sido tradicionalmente un campo dominado por aplicaciones de escritorio, destacando la enorme complejidad que tienen éstas asociadas. Sin embargo, gracias a la llegada de WebAssembly, ahora es posible llevar la edición de audio y vídeo al navegador web sin comprometer el rendimiento y la funcionalidad. 

Algunos ejemplos de utilización de WebAssembly en estos entornos pueden ser Soundation, Photopea o la versión web de una herramienta tan conocida como lo es VLC.

Herramientas de diseño: las herramientas de diseño son instrumentos bastante poderosos utilizados en arquitectura, ingeniería y diseño industrial. Al igual que los editores de audio y video, su uso estaba limitado a aplicaciones de escritorio debido a su complejidad y requisitos de rendimiento. No obstante, con la llegada de WebAssembly, estas herramientas de diseño están encontrando un nuevo hogar en la web.

Un buen ejemplo de uso de WebAssembly en este terreno es la aplicación más conocida por todos, AutoCAD, cuya versión web hace uso de esta tecnología.

Servicios de cartografía y visualización geoespacial: la cartografía y la visualización geoespacial son elementos fundamentales en nuestra forma de explorar y comprender el mundo que nos rodea. Estos servicios también tenían su base en aplicaciones de escritorio o plugins de navegadores que requerían de una instalación previa. Con la llegada de WebAssembly, se ha abierto un nuevo horizonte para los servicios de cartografía y visualización geoespacial en línea ya que se ha posibilitado la integración en páginas web.

Un conocido ejemplo en estas aplicaciones es Google Earth, el cual fue portado desde su aplicación de escritorio a la versión web utilizando WebAssembly.

Emuladores y simuladores: los emuladores y simuladores desempeñan un papel crucial en la recreación de sistemas y situaciones para una variedad de propósitos como puede ser el desarrollo de software. Gracias a WebAssembly se abre la posibilidad de poder ejecutar estos emuladores y simuladores desde un navegador, de tal manera que podremos ser capaces de ejecutar por ejemplo  un Windows 95 (https://copy.sh/v86/?profile=windows95), o una virtualización de Linux (https://webvm.io/).

Fuente: https://copy.sh/v86/?profile=windows95

Juegos en línea: los juegos en línea han sido una fuente popular de entretenimiento durante años, y la tecnología continúa evolucionando para ofrecer experiencias más inmersivas y fluidas. Sin embargo, en muchas ocasiones se requiere disponer de un equipo con ciertas características, capaz de poder correr diferentes juegos. 

Con Webassembly se busca el poder ejecutar estos juegos desde cualquier navegador de tal manera que no sea necesario disponer de un dispositivo dedicado para poder ejecutar estos. En la actualidad ya existen varios juegos que pueden ser ejecutados desde un navegador web debido a que han sido portados con éxito a WebAssembly. Algunos ejemplos pueden ser el Comecocos, el Asteroids o el Doom.

Son algunos de los ejemplos de uso de WebAssembly pero sus aplicaciones no solo contemplan los usos comentados sino que pueden incluir herramientas científicas y matemáticas, herramientas de ofimática, y un sinfín de aplicaciones que pueden ser implementadas con ayuda de esta tecnología, la cual está siendo cada vez más aceptada y adoptada por los desarrolladores tanto para poder ejecutar la ardua tarea de portar aplicaciones de escritorio a web, o simplemente la tarea de implementar nuevas aplicaciones destinadas a correr en navegadores.

Compartir en:

Relacionados