2015/06/18

WebAssembly quer compilar e acelerar o código executado nos browsers


O Google, Microsoft, Mozilla e WebKit vão juntar-se para criarem um novo formato que permitirá aumentar o desempenho dos programas executados pelos browsers: o WebAssembly.

Longe vão os tempos em que um browser apenas tinha que apresentar conteúdos em texto, com links a referenciar outros documentos. Actualmente, as páginas web são autênticos (e complexos) programas que estão a correr dentro de cada janela do browser; e onde se vai exigindo cada vez mais potência e desempenho.

Isso tem sido tentado sob a forma de projectos diversificados, como o Native Client do Google, ou o asm.js da Mozilla), todos com o objectivo de permitir que se criem programas que corram dentro do browser de forma idêntica à de um programa nativo a correr directamente no sistema. Mas finalmente parece que temos um projecto que reúne o apoio de todas as principais empresas e que por isso garantirá a compatibilidade alargada entre browsers, necessária para que o sistema tenha a confiança dos developers e comece a ser utilizado: o WebAssembly.

Com este formato, os developers poderão compilar os seus programas para este formato, com a garantia de que o mesmo será executado à máxima velocidade pelos browsers. Embora a sua execução continue a ser feita pelo motor de javascript, o facto de estar pré-compilado permite que se transfiram "megabytes" de código javascript em texto, que posteriormente teria que ser interpretado e processado pelo browser (também será do agrado dos developers ter um formato compilado que complica o acesso aos seus programas - e que actualmente obriga a que se faça obfuscação do código javascript, por exemplo).

Mesmo neste estado inicial, a execução do código WebAssembly é já 23x mais rápida que a interpretação de código asm.js, o que demonstra bem a sua potencialidade. E neste período transitório em que os browsers ainda não tiverem suporte generalizado para WebAssembly, será disponibilizada uma ferramenta que permite "descodificar" o formato para código javascript, de modo a poder correr em qualquer browser.

Mais um pequeno grande passo na direcção de usar a web como plataforma universal para tudo...

Sem comentários:

Enviar um comentário (problemas a comentar?)