Por que prestar atenção ao WebAssembly
(harshal.sheth.io)- Da introdução ao WebAssembly (WASM) até onde ele é usado hoje e previsões sobre as áreas em que será usado no futuro
Características do WASM
-
Portável: executa em navegadores e servidores com bytecode padronizado
-
Universal: várias linguagens como C, Rust, Go, Python e Ruby compilam para Wasm
-
Desempenho próximo ao nativo: em média é 1,45 a 1,55x mais lento que o nativo, mas sempre mais rápido que JavaScript
-
Inicialização rápida: 10~100x mais rápido que containers Docker e, no navegador, mais rápido que parsing/interpretação de JavaScript
-
Seguro: foi desenvolvido pensando na web, sendo seguro por meio de sandbox de memória e limitação de funcionalidades
Áreas em que o WASM é útil
-
Melhoria de velocidade do JavaScript
-
Fornecer interoperabilidade entre linguagens de programação
-
Runtime para sistemas de plugins multilíngues
-
Uso seguro de várias bibliotecas de terceiros com um motor de sandboxing embutido
-
O futuro da containerização: mais rápido, menor footprint e mais seguro que Docker
-
Plataformas FaaS/Serverless
-
Blockchain: pode ser usado como runtime de alto desempenho para executar smart contracts
Previsões e oportunidades
- Nova arquitetura de aplicações
→ Possibilidade de dividir microsserviços em componentes ainda menores
- Brownfield Deployment
→ Integração de containers Docker e Wasm na camada de orquestração
- Framework padronizado de Serverless/Edge
→ Hoje Fastly, Lambda e Fission constroem suas próprias plataformas, mas há possibilidade de padronização
→ "Terraform of Serverless"
- Gerenciamento de pacotes
→ Todas as linguagens têm um ecossistema de pacotes
→ O WASM precisa de um gerenciador de pacotes. Existe o WAPM, mas está praticamente inativo
Conclusão
- Se o WebAssembly é tão bom, por que ainda não é usado mais amplamente?
→ O marketing não é bom. Como não se limita à web nem a assembly, o nome já é inadequado
→ O marketing foi voltado principalmente para desenvolvedores web, mas o potencial real vai além do navegador
→ O padrão do WebAssembly ainda não existe
→ A interoperabilidade entre linguagens ainda é muito ruim
→ Ainda falta bastante em experiência do desenvolvedor
-
Mas muitos desses pontos estão melhorando e devem chegar a um estado aceitável em 1~2 anos
-
As atividades, o ecossistema e a comunidade em torno do WebAssembly entraram em uma fase de explosão
1 comentários
Mesmo buscando por WebAssembly/WASM no GeekNews, vocês poderão ver uma quantidade enorme de posts.
Vou listar apenas as principais matérias.
WebAssembly anunciado oficialmente como recomendação do W3C https://pt.news.hada.io/topic?id=1091
WebAssembly, será que pode se expandir para fora do navegador? A Bytecode Alliance está surgindo https://pt.news.hada.io/topic?id=901
MS/Google/Arm e outras entram para a Bytecode Alliance https://pt.news.hada.io/topic?id=4172
→ Organização sem fins lucrativos criada com o objetivo de fazer o WebAssembly ser usado além do navegador
Tendências do JavaScript em 2020 e depois - WebAssembly https://pt.news.hada.io/topic?id=2778
Como o WebAssembly consegue executar JavaScript mais rapidamente https://pt.news.hada.io/topic?id=5167
Amazon Prime Video passa a oferecer suporte a 8.000 tipos de dispositivos usando WebAssembly https://pt.news.hada.io/topic?id=5858
WebAssembly traz nova extensibilidade aos proxies de rede https://pt.news.hada.io/topic?id=1722
Lançamento do Wasmer 1.0 https://pt.news.hada.io/topic?id=3540
WebVM, máquina virtual x86 serverless executada no navegador https://pt.news.hada.io/topic?id=5893