Google Sheets avança na performance com a adoção do WasmGC em parceria com o Chrome. A iniciativa, que começou a ganhar forma em 2022, marca uma colaboração entre as equipes do Google Sheets e do Chrome, focadas na padronização, engenharia e ferramentas para otimizar o feedback em tempo real. Esse marco estabelece um precedente para a integração entre as equipes de engenharia do Google e o Chrome, visando ampliar o uso do WasmGC em mais aplicativos Google.
Originalmente lançado em 2006, o motor de cálculo do Google Sheets foi desenvolvido em Java e operava nos servidores. Contudo, a partir de 2013, o processamento começou a ser realizado no navegador através do JavaScript, utilizando inicialmente o Google Web Toolkit (GWT) e, posteriormente, o transpiler Java para Closure JavaScript (J2CL). A migração exigiu uma validação cuidadosa para garantir que os resultados do motor em JavaScript fossem idênticos aos da versão em Java, utilizando um mecanismo interno de validação que processa e compara um grande volume de dados entre as diferentes versões.
A necessidade de uma solução mais rápida surgiu porque, apesar dos avanços, o JavaScript se mostrou até três vezes mais lento que o Java. Isso se deve, em parte, às dificuldades dos compiladores JIT em otimizar código para um idioma dinâmico como o JavaScript. Em resposta, o Google viu no WasmGC, uma extensão do WebAssembly, uma oportunidade de acelerar linguagens com coleta de lixo como o Java, trazendo-as para a web com desempenho quase nativo.
A parceria entre Google Workspace e Chrome começou a testar o WasmGC com o motor de cálculo do Sheets em 2020, culminando com um protótipo funcional em 2021. Apesar dos desafios iniciais, como a falta de ferramentas de perfilamento e a necessidade de substituir bibliotecas JavaScript, as otimizações subsequentes melhoraram significativamente o desempenho, aproximando-o do JavaScript.
Essas melhorias incluíram a replicação de otimizações já existentes em outras plataformas, o uso de APIs de navegador altamente otimizadas e a eliminação de padrões de codificação específicos do JavaScript. Esses avanços exemplificam como o WebAssembly pode facilitar o desempenho de aplicações multiplataformas na web, sem depender das particularidades do JavaScript.
O Google está otimista quanto ao futuro do WasmGC, prevendo avanços significativos tanto para a performance de threads únicos quanto para a multithreading com memória compartilhada. A empresa incentiva os desenvolvedores web a considerarem o WasmGC para seus próximos projetos de alto desempenho, visando tornar a web um lugar mais rápido e eficiente.
Confira os últimos vídeos publicados no canal