Neste artigo vamos falar sobre o futuro da internet, mais conhecido como WebAssembly. Já ouviu falar nele? Quer entender melhor como funiciona? Acompanhe o texto até o final com a gente! A página que você está lendo nesse momento é um amontoado de HTML, CSS e JavaScript. HTML é o cara que dá forma pra página, CSS é o cara que a deixa bonitinha e JS é a linguagem de programação por trás disso tudo.
Você já ouviu falar sobre JavaScript? Parece pergunta de vendedor de canal de compras, mas não é. No GitHub, essa é a linguagem com maior número de repositórios.
Há mais Frameworks JavaScript do que átomos no universo. Virtualmente toda pessoa desenvolvedora já escreveu um código em JavaScript.
E por que isso?
Bem, basicamente porque não é possível construir uma aplicação Web sem usar JavaScript. Sério isso? Sim, tão sério que até aplicações de celulares tem usado JavaScript, olha o PWA aí.
Não usar o JavaScript é um problema?
Cara, pra mim não. Eu gosto muito de JavaScript, muito mesmo. JavaScript é a linguagem que te dá liberdade suficiente pra fazer o que quiser da maneira que quiser. Olha o NodeJs , por exemplo. Mas como diria meu pai: com grandes liberdades, vem grandes responsabilidades.
Então se você é livre pra fazer o que quiser como quiser em JavaScript, você tem que saber muito bem o que está fazendo. E aqui começa o problema. Infelizmente nem sempre escrevemos bons códigos em JavaScript, e essa é uma verdade dolorida.
Você já parou pra pensar em como um código JavaScript é executado pelo Browser? Leia o próximo parágrafo correndo.
O browser recebe o código ocorre a interpretação léxica o parser monta a árvore de execução o tradutor a converte em bytecode finalmente o interpretador executa o código.
Ficou cansado? Parece muita coisa? De maneira geral, é assim que uma engine JavaScript funciona. Acredite, esse processo já é bastante otimizado, cada passo desses é muito rápido. Só que esse processo acontece sempre, a cada requisição, a cada cliente da sua aplicação, esse processo se repete.
E aí vem a questão: já que o browser vai sempre fazer a mesma coisa pra transformar código em bytecode, por que eu não entrego bytecode direto pra ele?
O WebAssembly, ou WASM, entra aí.
Inclusive, olha uma palhinha do tech shot que eu dei na dti sobre WASM.
Vamos entregar o “Assembly” para “Web”.
A ideia inicial era compilar o próprio código JavaScript e entregar pro navegador. No entanto, um efeito colateral interessante disso é que agora podemos escrever códigos em outras linguagens e entregar pro browser.
Então, se eu não gosto muito de JavaScript, agora eu posso escrever meu código C# e deixar que o browser rode o bytecode compilado a partir dele.
WebAssembly funciona?
Funciona! Olha esse repositório aqui no GitHub . Ele é um fork que eu criei do projeto do Blazor do Steve Sanderson.
Com o Blazor, é possível escrever um código C# que vai rodar direto no browser.
Legal, cara, mas como isso vai tornar o mundo um lugar melhor?
Primeiro: as aplicações Web vão ficar mais rápidas, aquele processo todo que o browser faz vai ficar mais simples. Nesse link você pode ver a comparação em tempo real entre um código WASM e um código JavaScript no processamento de imagem.
Segundo: agora você pode escolher sua linguagem preferida pra escrever sua aplicação, se você não gosta de JavaScript, sem problemas, escreva um bom código na linguagem com a qual você se sente mais confortável.
Atualmente, muito do que se faz em WebAssembly ainda é experimental, mas há quem acredite que esse seja o futuro da Internet .
Se você tem interesse em mais insights como esse, acesse nosso podcast sobre tecnologia e metodologia ágil no mercado de trabalho: Os Agilistas. Nele, você fica próximo das tendências sobre o mercado de trabalho do futuro. Te esperamos lá!