O que é WebAssembly?

O que é WebAssembly?

Por mais de duas décadas, o JavaScript foi a única linguagem de programação que podia ser executada em navegadores. Outras linguagens como Python, C++ e Go foram principalmente para construir o lado do servidor de aplicativos e serviços da web.

O JavaScript funcionou muito bem, mas muitas outras linguagens de programação são mais rápidas. Há muitos benefícios que os aplicativos da web podem aproveitar ao executar outras linguagens de programação de melhor desempenho diretamente no navegador.

O WebAssembly oferece uma opção eficiente, aberta e segura que faz parte da plataforma web aberta. Você pode usá-lo para criar aplicativos executados em navegadores, servidores e em outros ambientes.

Apresentando o WebAssembly

Introdução ao WebAssembly

WebAssembly (WASM) é uma linguagem padronizada W3C portátil, eficiente e de baixo nível. Ele define um formato de código e interfaces para programas interagirem com plataformas na web.

Você pode compilar a maioria das linguagens de programação no formato de código binário do WebAssembly. Os navegadores podem interpretar e executar o código WASM resultante da mesma forma que fazem com o JavaScript normal. Você também pode executar o WebAssembly junto com o código JavaScript para maior desempenho do aplicativo e interoperabilidade entre os dois.

WebAssembly tornou-se um padrão W3C em 2019, com suporte em muitas linguagens de programação. De acordo com Made with WebAssembly , já existem muitos projetos populares que usam o WebAssembly para enviar software rápido e seguro para seus usuários.

Muitas linguagens de programação, incluindo aquelas que são específicas do lado do servidor, suportam WebAssembly. Isso inclui Rust, Go, Python, C++, TypeScript, Java, PHP e Ruby. Confira o recurso awesome-wasm-langs para aprender sobre as linguagens suportadas pelo WebAssembly e os pacotes que você pode usar com elas.

Aqui está um exemplo de programa WebAssembly do Tutorials Point que retorna no máximo dois inteiros:

Um exemplo de código WASM

A sintaxe do WebAssembly é relativamente detalhada em comparação com o JavaScript, mas isso não deve ser um problema. Você não precisará aprender a sintaxe, pois o WebAssembly será o destino de compilação para os programas que você escrever em seu idioma preferido.

Como funciona o WebAssembly

WASM existe como um destino de compilação para outras linguagens de programação transpilar. Você pode escrever em sua linguagem de programação favorita e compilar o código-fonte para o bytecode WASM que é executado no cliente. Traduzi-lo em código de máquina nativo significa que ele pode ser executado em alta velocidade, geralmente mais rápido que o JavaScript.

Um dos recursos críticos do WASM é a interoperabilidade do JavaScript. Você pode importar módulos WASM para um aplicativo da web e expor as funções WASM para uso no código JavaScript. As estruturas JavaScript podem tirar proveito do WASM para maior desempenho.

O WASM usa um modelo de execução em área restrita semelhante ao JavaScript. O WASM interage com a máquina host usando ABIs (Application Binary Interface) como a WebAssembly System Interface que fornece acesso a recursos e outros serviços do sistema com base nos requisitos do programa.

Muitos navegadores modernos suportam WASM, incluindo Chrome, Microsoft Edge, Mozilla Firefox, Opera e Safari. Linguagens como Go e Rust suportam WASM imediatamente.

Por que a Web precisa do WebAssembly

Recursos do WebAssembly

JavaScript tem funcionalidade limitada por design. Não é uma das linguagens mais rápidas ou de melhor desempenho desde que começou como uma linguagem de script para a web. Embora existam muitos tempos de execução em que o JavaScript é executado em velocidades variadas, existem linguagens mais rápidas e com melhor desempenho que o WebAssembly pode trazer para a Web para casos de uso como jogos, vídeos e música.

O WebAssembly também oferece mais portabilidade e flexibilidade para linguagens que não rodam na web. A introdução de mais idiomas na Web (a plataforma de código aberto mais popular) deve resultar em uma experiência geral aprimorada.

A adoção do WebAssembly é rápida

Muitas empresas e desenvolvedores estão construindo aplicativos com WebAssembly. Google, Dropbox e Cloudflare usam ativamente o WebAssembly em alguns de seus aplicativos.

O WebAssembly é popular entre os desenvolvedores Python, C++ e Rust. Os desenvolvedores Python geralmente usam Pyoidide e PyScript, desenvolvedores C++ e Emscripten e desenvolvedores Rust com Percy, Yew, Sycamore, MoonZoon e a estrutura Seed.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *