Google e Microsoft tentam acelerar a internet
O WebAssembly (ou wasm) funcionara como um novo formato binário para compilar aplicações web, permitindo que os programadores executem programas de diversas linguagens (por enquanto apenas C e C++) dentro da engine JavaScript dos browsers.
Diferentemente dos métodos atuais, o wasm não deixa que os navegadores lidem direto com o código e “interpretem uma linguagem baseada em texto, que foi feita para humanos”, como explica o Ars Technica.
Seu funcionamento, ele na verdade se aproxima mais do .NET. O sistema usa o código-fonte da aplicação para criar um bytecode, uma instrução que pode ser interpretada mais rapidamente pela máquina virtual, o browser.
Em testes, a representação intermediária gerada pelo wasm – que quer servir como um “alvo” único para compilação na web – foi até 20 vezes mais rápida para ser interpretada do que uma equivalente em asm.js.
A ideia dos engenheiros da Mozilla, do Chromium, do Edge e do Webkit (em que roda o Safari, da Apple) é transformar o WebAssembly em um padrão, mas sem necessariamente acabar com o JavaScript.
“O novo formato foi feito para complementar, e não substituir o JS”, diz o FAQ na página do projeto no GitHub.
“Enquanto o wasm permitirá, com o tempo, que muitas linguagens sejam compiladas para a web, o JS uma quantidade incrível de ímpeto e continuará como a única linguagem dinâmica para a web.”
Como ainda não é o padrão usado pela web, o WebAssembly conta com um polyfill (quase um add-on), um script que o converte para o asm.js – um subset do JavaScript, que é bem suportado pelas últimas versões dos browsers mais populares.
Infelizmente existe uma queda de desempenho,por outro lado isso facilita a transição enquanto os navegadores com suporte ao novo padrão – versões atualizadas do Chrome, do Edge, do Firefox e do Safari, entre outros programas do gênero – não se popularizam.
O desenvolvedor Luke Wagner, da Mozilla, explicou em seu blog que o desenvolvimento do formato binário ainda está bem no começo, algo reforçado por Brendan Eich, o idealizador do JavaScript.
Os usuarios ja podem conferir alguns protótipos e documentações nas páginas do sistema na W3C e no GitHub. E para mais informações sobre o projeto(em inglês), existe um Faq aqui.