24 pontos por GN⁺ 2023-11-17 | 1 comentários | Compartilhar no WhatsApp

Introdução ao WebAssembly (Wasm)

  • WebAssembly (Wasm) é um bytecode genérico de baixo nível executado na web
  • Serve como alvo de compilação para várias linguagens, como Rust, AssemblyScript (semelhante a Typescript), Emscripten (C/C++) e TinyGo (Go)
  • Atualmente está disponível em todos os principais navegadores e também conta com runtimes para execução no servidor ou para fazer interface com o sistema usando WASI
  • O Wasm oferece um formato binário compacto, com desempenho previsível e portabilidade, podendo ser executado junto com JavaScript e outras linguagens hospedeiras

O que é 'Wasm By Example'?

  • 'Wasm By Example' oferece uma introdução concisa e prática ao WebAssembly usando trechos de código e programas de exemplo comentados
  • Inclui exemplos que explicam os conceitos básicos do WebAssembly e mostram como usá-los para construir funcionalidades comuns em aplicações maiores

Exemplos dos principais conceitos do WebAssembly (Wasm)

  • Fornece exemplos que representam os principais conceitos fundamentais do WebAssembly.
  • Esses exemplos talvez não sejam a forma mais conveniente ou produtiva de construir projetos com WebAssembly, mas são adequados para aprendizado ou para desenvolver partes simples ou de baixo nível de uma aplicação.
    • Hello World
    • Exports
    • WebAssembly Linear Memory
    • Importing Javascript Functions Into WebAssembly

Exemplos aplicando os conceitos

  • Expande os exemplos conceituais para mostrar como esses exemplos simples podem ser usados para construir funcionalidades comuns em aplicações maiores
    • Reading and Writing Graphics
    • Reading and Writing Audio

Exemplos de ferramentas do ecossistema e recursos de linguagem

  • Fornece exemplos que destacam ferramentas, bibliotecas e recursos da linguagem de programação escolhida
    • Passing High Level Data Types with wasm-bindgen
  • Esses componentes do ecossistema podem ajudar bastante na construção de aplicações robustas.

Exemplos de WebAssembly (Wasm) fora do navegador

  • Fornece exemplos que destacam a WebAssembly System Interface (WASI), runtimes independentes de WebAssembly, ferramentas para aplicações que usam WASI e casos de uso para tarefas como computação em nuvem e dispositivos de Internet das Coisas (IoT)
  • O WebAssembly tem recursos importantes adequados para a web no navegador, e essas capacidades também o tornaram uma escolha popular fora do navegador
    • WASI Introduction
    • WASI Hello World

Opinião do GN⁺

O ponto mais importante deste texto é que o WebAssembly (Wasm) é um alvo de compilação para várias linguagens de programação e tem a versatilidade de poder ser usado não só em navegadores web, mas também em servidores e diversos sistemas. 'Wasm By Example' mostra bem por que essa tecnologia é interessante e atraente ao oferecer exemplos práticos que ajudam engenheiros de software iniciantes a entender o WebAssembly com facilidade e a aplicá-lo na prática. A portabilidade e o desempenho do WebAssembly são elementos importantes no desenvolvimento web moderno, e este texto oferece informações úteis para quem quer aprender essa tecnologia.

1 comentários

 
GN⁺ 2023-11-17
Comentários do Hacker News
  • É um caso interessante de uso do WASM para criar bibliotecas escritas em várias linguagens e depois importá-las e usá-las em outras linguagens.
  • O conjunto de instruções do WASM, suportado por todos os principais navegadores, é atraente, mas há questionamentos sobre o fato de até mesmo uma demo simples de hello_world gerar páginas de vários megabytes.
  • Há a opinião de que deveria ser fornecida uma visão geral e uma explicação sobre a estrutura e o uso do WASM, com exemplos. Também é mencionado que os workers da Cloudflare podem executar WASM em servidores de borda, e que a comunidade Swift também oferece suporte à compilação para WASM.
  • Há uma sugestão de que seria útil adicionar essa categoria para ajudar na compreensão da sintaxe S-expr do WebAssembly.
  • Alguém escreveu um guia sobre como fazer a depuração de WASM funcionar no VSCode, usando a nova extensão de depuração WASM DWARF.
  • Está em andamento o livro 'WASM from the Ground Up', que ensina WASM enquanto você cria seu próprio compilador, e que até agora tem fornecido informações úteis.
  • Há quem se pergunte se o WASM algum dia substituirá o JavaScript no navegador.
  • Uma demo do Unity executada com WASM e WebGPU foi publicada no Hacker News como exemplo.
  • Há alguém tendo dificuldade para encontrar informações sobre um compilador assembler de WASM.
  • Houve surpresa ao ver que um exemplo simples de add, escrito em uma linguagem que não é JavaScript usando WASM, tem uma funcionalidade interativa capaz de receber parâmetros em tempo de execução.