Compartir

WebAssembly, potencial futuro estándar binario para desarrollo Web

Brendan Eich, el creador de JavaSctipt y CEO de Mozilla ha anunciado un nuevo proyecto que podría no solamente aumentar la velocidad de las aplicaciones Web, sino que también podría llegar a suponer el final del monopolio de JavaScript como lenguaje "estándar" de desarrollo Web.

Se trata de WebAssembly, cuyo objetivo es convertirse en una especie de formato binario para la Web, el cual pueda ser utilizado por los compiladores de toda clase de lenguajes, incluyendo (pero no limitándose a) JavaScript. Tiene el objetivo de convertirse en un estándar que defina un modelo de ejecución portable y eficiente en cuanto a tiemp y tamaño, específicamente diseñado para la web.

Los principales navegadores (Google, Microsoft y Mozilla) apoyan el proyecto y están de acuerdo en las líneas fundamentales respecto a WebAssembly. De esta forma, Eich predice que dentro de unos pocos años los principales browsers soportarán motores JS que se habrán convertido en máquinas virtuales multilenguaje.

Aunque WebAssembly es en sí mismo un formato binario, la especificación incluirá un formato de texto que pueda ser presentado cuando alguien hace una vista de la fuente, conservando (al menos en parte) la apertura de la web. En cuanto a lenguajes a soportar, el foco inicial estará en la compilación de C / C++ a WebAssembly.

Entre otras características interesantes de WebAssembly se encontraría que el formato binario puede ser decodificado de forma nativa más de 20 veces más rápido que JavaScript. Además, la capacidad de posibilitar a los desarrolladores la creación de aplicaciones en sus lenguajes preferidos, y luego compilar el código para su ejecución en los navegadores, podría ayudar potencialmente a que las aplicaciones web basadas en navegador compitan con apps nativas como las de iOS y Android, que siguen siendo populares en gran parte debido a las prestaciones que ofrecen a los usuarios.

WebAssembly está diseñado para complementar, no para reemplazar a JavaScript. De hecho, los creadores del WebAssembly citan una serie de casos de uso en los que probablemente se utilizará junto JavaScript para crear mejores aplicaciones y experiencias.

También es importante tener en cuenta que, si bien los principales casos de uso de WebAssembly están en el navegador, es probable que tenga atractivo más allá de la parte cliente. Como tal, WebAssembly un día también podría cambiar el desarrollo de aplicaciones de servidor y aplicaciones nativas híbridas que se ejecutan en los dispositivos.

Se espera que se produzcan cambios incluso en el propio concepto de WebAssembly, ya que aún no hay ni siquiera un borrador de especificación, aunque ya se han publicado en la página GitHub del proyecto documentos de diseño de alto nivel, prototipos de código fuente para los compiladores, y una versión modificada del motor V8 de JavaScript de Google que puede ejecutar WebAssembly de forma nativa.

Para supervisar el proyecto, se ha constituido una comunidad WebAssembly bajo los auspicios del World Wide Web Consortium (W3G), y está abierta a que cualquiera pueda unirse.