theme | transition | title | enableMenu | enableSearch | enableChalkboard | slideNumber |
---|---|---|---|---|---|---|
league |
slide |
WebAssembly |
true |
false |
true |
true |
Como o WebAssembly permitiu Flutter e Python na Web
- Átomos
- Código de maquina (0 e 1)
- Assembly
- Flow-Matic → COBOL
- Nascem as linguagens de baixo nível
- Foi feito para aplicações pequenas
- É interpretado
- Não é performático
- Tem um tempo maior para iniciar
- Análise léxica do código
- otimizações
- Just in time compiler
- Compilação com JS
- Engine V8
- “Temperatura do código”
- Partes muito executadas → Quentes
- Partes pouco executadas → Frias
- Partes quentes → Candidatas a compilação
Um novo tipo de código que pode ser executado em navegadores modernos e oferece novos recursos e grandes ganhos de desempenho.Ele não se destina principalmente a ser escrito à mão, mas foi projetado para ser um destino de compilação eficaz para linguagens de origem como C, C++, Rust, etc.
MDN
- Melhor compatibilidade;
- Mais segurança;
- Maior desempenho em aplicações web;
- Melhor acesso a recursos nativos.
- Edição de vídeo/imagem
- Jogos
- Reconhecimento de imagem
- Aplicações CAD
- Houveram outras tentativas antes
- transcrypt e Brython
- Pyodide
Python é uma linguagem interpretada, que não vem com um compilador padrão que possa direcionar o WebAssembly. Então, como esse processo ocorre?
- DOM + Canvas + CSS → DomCanvas
- Compila código Dart em JS → dart2js
- Skia (O Skia é uma biblioteca de gráficos 2D)
- Flutter 1.17 → CanvasKit → WebAssembly e WebGl.
- Wasm é mais rápido que Js para coisas complexas
- Mas o JS pode manipular o DOM
- WASM não possui um garbage collector
- WASM originalmente foi pensado como um target para C/C++
- Linkedin: Luís Santiago
- GitHub: luis-antonio-dev
- Instagram: dev__luis