Já pensou poder utilizar o Photoshop e todos seus recursos pela internet? Ou então não precisar baixar 20GB pela Steam para jogar a última novidade? É isso que o WebAssembly promete. Hoje, a linguagem foi ativada por padrão na versão 58 do Chrome.
Basicamente, linguagens de programação para Web não foram feitas para utilização de grande poder de processamento. A mais popular para conteúdo dinâmico é o JavaScript. Apesar de ser possível criar coisas incríveis com ele, o JavaScript não é capacitado para lidar com o processamento requerido para rodar um jogo equivalente ao CS:GO, por exemplo.
O JavaScript é uma linguagem de alto nível. Isso significa que, ao mesmo tempo que é mais “fácil” de se programar, também é mais abstrata. Com ele, você pode conseguir em uma linha de código algo que precisaria de muito mais em uma linguagem de baixo nível. A vantagem é óbvia, mas a desvantagem é que você sacrifica controle, e por consequência, performance e acesso mais direto ao hardware.
Já o WebAssembly foi desenvolvido justamente pensando nisso. Com ele, os programadores conseguem ter maior controle sobre suas aplicações e utilizar melhor os recursos do sistema e hardware.
O Futuro
Logo, será possível criar webapps muito mais pesados do que os que existem hoje. Não é impensável pensar em jogos muito pesados sendo jogados pela internet, ou aplicativos extremamente complexos e que requerem muito do computador, como os de edição profissional de vídeos.
Com o Chrome em sua versão de testes já ativando o WebAssembly por padrão, a linguagem ganha um grande impulso. A versão Nightly do Firefox também já a suporta, mas é necessário ativar manualmente nas opções.
As possibilidades não se limitam apenas aos computadores. Os navegadores para smartphones também aceitarão o novo padrão.
Se você está curioso, pode conferir esta demonstração de um jogo que foi portado ao WebAssembly. No smartphone os controles ainda não funcionam, mas já é bem legal apenas pelos gráficos.
O Chrome Canary, que é a versão de testes, está disponível na Play Store. Esteja ciente que atualizações são extremamente frequentes e poderão haver problemas. Já a versão para Windows e e OSX pode ser encontrada aqui.