Durante años se han cuestionado ciertas
características y el funcionamiento de JavaScript. Pero hasta hoy, no
había aparecido otra alternativa válida. Hoy, muchos piensan que ha
llegado ¿Cuál es el potencial reemplazo de JavaScript? Se trata de un
lenguaje de programación que hasta hace poco estaba rodeado de cierto
secreto. De hecho, en algunas fuentes se lo define como a un “lenguaje
experimental de bajo nivel para el scripting en dispositivos cliente,” como lo son los browsers. WebAssembly o WASM es un bytecode portable
diseñado para hacer más veloz que JavaScript en la función de parsing y
en la ejecución.
Bytecode, también denominado código portable o p-code, es un set o
conjunto de instrucciones diseñadas para una ejecución más eficiente de
parte del intérprete de software. A diferencia del código fuente
clásico, los bytecodes son códigos numéricos compactos, constantes y
referencias (generalmente direcciones numéricas) que codifican los
resultados del parsing (podría traducirse como análisis sintáctico), del
análisis semántico de elementos como tipos, alcance y profundidad de
anidados en objetos de programas. De esta manera, permiten una
performance mucho más alta que la de la interpretación directa del
código fuente.
Las empresas que apoyan este proyecto, casualmente son tres de las
que controlan a los principales browsers del mercado: Mozilla con su
Firefox; Microsoft con Internet Explorer y Google con Chrome.
Posiblemente esté participando de alguna forma Apple, la dueña de
Safari.
WebAssembly, como dijimos antes, se mantuvo bajo cierto secreto y
recién ahora aparece a la luz en manos de estos cuatro importantes
proveedores del mundo Internet. El anuncio público se realizó una vez
que estos competidores llegaron a un cierto punto de consenso. Los
proyectos futuros con WebAssembly estarán en manos de W3C (World Wide
Web Consortium), la organización de estándares que ya conocemos.
Cómo funciona WebAssembly
WebAssembly hace uso de la tecnología presente en el proyecto de
compilador LLVM (Low Level Virtual Architecture) y de asm.js. LLVM es
una infraestructura de compilación diseñada como conjunto de librerías
reutilizables con sus propias interfaces. Está escrita en C++ y diseñada
para funcionar optimizando la actividad de diversos lenguajes de
programación en tiempo de compilación, link-time, run-time e iddle-time
(tiempos de parada).
Por su parte, asm.js es un lenguaje de programación intermediario y
diseñado para que el software escrito en lenguajes como C puedan correr
en forma de aplicaciones Web a la vez que logran una performance
superior a la del JavaScript estándar.
Se utiliza LLVM y asm.js para compilar código fuente C y C++, de
forma que corra en motores JavaScript. Al hacer una pre compilación del
código que funciona del lado cliente de la aplicación, permite la
optimización de aplicaciones Web y mobile basadas en estándares
abiertos. De esa manera, éstas pueden funcionar más velozmente que
JavaScript, aun cuando el código en realidad funciona más lentamente que
el código nativo puro.
Posibilidades más maduras que las de JavaScript
Entre las ventajas de WebAssembly encontramos a la posibilidad de
operar con cargas optimizadas y de menor tamaño, lográndose así menores
tiempos de carga . Con la posible apertura de WebAssembly a otros
lenguajes como Java y Python, esta optimización puede extenderse. Es
deseable que esta evolución de la tecnología de estándares Web abiertos
convierta a JavaScript en un protagonista menos importante. Su aparición
como componente de los estándares abiertos fue en realidad accidental.
Nunca se lo concibió en el papel de un elemento central y presenta
algunas deficiencias notorias. Los analistas especializados ven en
WebAssembly al remedio para las deficiencias de JavaScript, el que
quedaría relegado mayormente a tareas relacionadas con interfaces de
usuario.
Como toda innovación, queda por comprobarse si es capaz de entregar
todo lo que promete, si bien en principio se presenta como alternativa
adecuada para desarrollos nativos en dispositivos móviles. Si Apple se
suma activamente al proyecto, muchos especialistas opinan que
WebAssembly se convertirá en una alternativa sólida en desarrollo para
Web. Los expertos aconsejan tener en cuenta y seguir de cerca la
evolución de WebAssembly.
SOCIALIZE IT →