A execução mais rápida de códigos em JavaScript nos navegadores é um objetivo perseguido há tempos. É verdade que houve muitos avanços nos últimos anos, mas as aplicações ficam mais complexas à medida que evoluem, logo, sempre há espaço para mais otimização. Essa percepção levou engenheiros da Microsoft, Mozilla, Google e outras organizações a se unirem em prol do WebAssembly (ou “wasm”).
Trata-se de uma parceria no melhor estilo “a união faz a força”. Todas essas companhias já realizam trabalhos importantes para melhorar a execução de aplicações web – a Microsoft tem o TypeScript, a Mozilla, o asm.js, por exemplo. A soma de experiências deve trazer resultados muito mais interessantes para todos os lados, portanto.
Os testes preliminares indicam que, na fase atual, o projeto pode tornar a decodificação das aplicações nos navegadores até 23 vezes mais rápida. A explicação está no fato de o WebAssembly ser um tipo de bytecode.
Explicando rapidamente, bytecode é um código binário que se situa entre o código-fonte da aplicação e o código em linguagem de máquina, aquilo que é efetivamente colocado em execução.
No final das contas, o trabalho com código binário pode tornar o processamento como um todo significativamente mais ágil. O bytecode é meio caminho andado, digamos assim, logo, a sua execução tende a ser mais rápida do que quando o navegador precisa analisar o código-fonte por completo, tarefa que, dependendo da aplicação, exige bastante processamento.
Note que o objetivo do projeto não é acabar com a forma como o JavaScript é usado. O WebAssembly está sendo desenvolvido com foco em aplicações realmente exigentes, que precisam de mais velocidade para descompressão ou efeitos de animações, por exemplo.
Repare também que a iniciativa está em fase inicial, o que significa que ainda há muito trabalho a ser feito para o WebAssembly se tornar padrão.
Você pode saber mais sobre o assunto no repositório do WebAssembly no GitHub ou no grupo do projeto na W3C.
Com informações: TechCrunch, Ars Technica