![A integração de dados históricos e em tempo real melhora a tomada de decisões](https://optimuscloud.com.br/wp-content/uploads/2024/04/1713453725_A-integracao-de-dados-historicos-e-em-tempo-real-melhora-150x150.jpg)
A integração de dados históricos e em tempo real melhora a tomada de decisões
18 de abril de 2024![Novo projeto Wasm traz componentes da Web para linguagens de back-end](https://optimuscloud.com.br/wp-content/uploads/2024/04/1713463206_Novo-projeto-Wasm-traz-componentes-da-Web-para-linguagens-de-150x150.jpg)
Novo projeto Wasm traz componentes da Web para linguagens de back-end
18 de abril de 2024Na Wasm I/O em Barcelona e na KubeCon em Paris, foram anunciadas diversas atualizações relacionadas ao WebAssembly (Wasm). Destes, surgiram quatro grandes padrões.
O suporte a linguagens de programação está crescendo
Desde a sua criação, o maior risco para o sucesso do Wasm tem sido a falta de suporte de linguagens de programação. Mesmo o melhor formato de bytecode multiplataforma não terá sucesso se nenhuma linguagem for compilada nesse formato.
Há muito tempo que acompanho o suporte a idiomas no WebAssembly. Em particular, acompanho quantas das 20 principais linguagens, de acordo com RedMonk, estão adotando o WebAssembly. Python, JavaScript/TypeScript, Ruby, Rust, C/C++ e Zig fizeram o movimento Wasm, e outras linguagens estão a caminho.
No Wasm I/O, Zalim Bashorov da JetBrains relatou sobre o rápido progresso do Kotlin. Além de ser uma linguagem popular por si só, Kotlin representa os elementos mais progressistas do mundo Java. Com o Kotlin se aproximando do suporte principal do WebAssembly e do suporte WASI 0.2, espero que a popularidade da linguagem ganhe outro impulso à medida que encontra um novo público-alvo de desenvolvedores. Mais do que isso, atrairá a maior comunidade Java para o WebAssembly.
O Dart agora vem com um destino de compilação WebAssembly. No Wasm I/O, Kevin Moore, do Google, compartilhou os emocionantes desenvolvimentos no mundo Dart e Flutter. Moore não deu a impressão de que o Dart estenderia seu alcance além das raízes do navegador e do aplicativo móvel, mas o benefício de desempenho que o Wasm traz para esse mundo é fantástico. Moore mostrou benchmarks indicando que a execução do Wasm pode ser 50% mais rápida do que os tempos de execução baseados em JavaScript.
Por fim, a equipe Go, representada por Rajiv Singh e Achille Roussel, cobriu os novos desenvolvimentos no suporte WebAssembly do Go. Go cedeu parte de seu suporte WebAssembly para TinyGo (e Ron Evans, chefe desse projeto, também apresentado no Wasm I/O). Mas a equipe principal do Go agora tem um interesse renovado em oferecer suporte ao Wasm dentro e fora do navegador.
Mais um recurso importante do suporte a linguagens de programação, porém, é a capacidade de depuração. Natalia Venditto e Ralph Squillace da Microsoft demonstraram a depuração do Wasm dentro do Visual Studio Code. A depuração Wasm com linguagem neutra é uma necessidade absoluta para o desenvolvimento de software moderno, e a Microsoft está trabalhando arduamente para tornar isso uma realidade.
Kubernetes é o destino para implantações de WebAssembly
Tanto o Wasm I/O quanto o KubeCon estavam entusiasmados com a execução do Wasm dentro do Kubernetes. Fermyon, Microsoft, SUSE, Liquid Reply e outros lançaram coletivamente o projeto SpinKube de código aberto para executar aplicativos Wasm Kubernetes com sabor de Spin. E na KubeCon, a empresa internacional de óptica ZEISS Group apresentou casos de uso práticos no palco principal.
A SUSE anunciou o suporte do Rancher Desktop para WebAssembly, usando seu tempo de execução K3s Kubernetes. Fermyon anunciou uma plataforma Fermyon ultradensa e com suporte comercial para Kubernetes, capaz de executar 5.000 aplicativos Wasm por nó Kubernetes. O projeto wasmCloud da Cloud Native Computing Foundation atingiu a versão 1.0 e oferece suporte à integração com Kubernetes. E a Unidade NGINX anunciou suporte para execução de aplicativos Spin dentro de sua plataforma de aplicativos.
Após a palestra da KubeCon no WebAssembly, o analista da EMA, Torsten Volk, observou que Wasm havia se tornado o tópico mais discutido da conferência.
O que há no Wasm que combina tão bem com o Kubernetes? Os tempos de inicialização a frio do Wasm o tornam uma excelente plataforma para funções sem servidor do tipo lambda. Os usuários do Kubernetes há muito têm interesse em executar essas cargas de trabalho dentro do cluster, mas a primeira onda de soluções sem servidor do Kubernetes não conseguia igualar a densidade, o desempenho e a velocidade de inicialização do Wasm.
O modelo de componentes se torna real
Houve oito sessões sobre o modelo de componente WebAssembly no Wasm I/O este ano. Embora o Wasm I/O do ano passado tenha abordado o modelo de componentes de uma forma amplamente teórica, este ano vimos o impacto que um ano de desenvolvimento teve nos componentes.
Gostei particularmente da série de três sessões com Thorsten Hans, da Fermyon, mostrando programação poliglota com componentes, Ryan Levick explicando o porquê e o porquê dos componentes, e Luke Wagner finalizando a tríade com uma sessão sobre chamadas assíncronas entre componentes (uma sessão ainda a ser realizada). parte concluída do WASI).
Houve outras sessões focadas no uso de componentes para realizar tarefas específicas por Sejyo Chang da InfinyOn, Pierre Dureau da Design Systems, Jean Valverde da Dilla.io, Cosmonic’s Taylor Thomas e outros. Tomados de forma agregada, agora está claro que o modelo de componentes está pronto para uso.
O desenvolvimento mais importante relacionado aos componentes, porém, veio de Oscar Spencer da F5 e Danny Macovei da JAF Labs. O trabalho na definição de um registro de componentes está em andamento nos últimos três anos, mas no final do primeiro dia do Wasm I/O, Macovei e Spencer lançaram o WA.dev, o primeiro registro de componentes do Wasm. É justo comparar WA.dev com npm ou mesmo Docker Hub. Os desenvolvedores podem fazer upload de seus componentes para um registro central que facilita a descoberta e o gerenciamento de componentes para todos nós.
Wasm ainda é uma linguagem pioneira
Talvez o último desenvolvimento seja uma antitendência. O suporte ao idioma está caindo na linha. Kubernetes e Wasm estão avançando. A especificação do modelo de componente Wasm está se transformando em ferramentas práticas. Todos estes são sinais de maturidade e estabilidade. No entanto, Wasm não estagnou; ainda há um elemento de exploração contínua.
Nada ilustra isso melhor do que o projeto Wanix, que os desenvolvedores independentes Jeff Lindsay e Julian Del Signore apresentaram no segundo dia do Wasm I/O. Lindsay é uma visionária cujos projetos frequentemente forçam os desenvolvedores de software a repensar suas suposições sobre como as coisas podem ser feitas. Desde a invenção de webhooks até suas prolíficas contribuições iniciais no espaço de contêineres, Lindsay ultrapassou limites. Wanix não é exceção.
Del Signore e Lindsay mostraram um sistema operacional inspirado no Plan9 no navegador que alimentava um sistema semelhante ao CMS capaz de sincronizar o estado com o GitHub. Foi um exemplo fantástico de como a versatilidade, o desempenho e a natureza multiplataforma do Wasm podem se combinar para construir uma classe de ferramenta para a qual atualmente não há nome.
Na mesma linha, Daniel Lopez, ex-chefe do Wasm Labs da VMware, levou o público em um passeio divertido ao mostrar uma variedade de demonstrações. Desde a execução do Windows 95 no navegador até a demonstração da inferência de IA, Lopez apontou uma variedade de aplicações interessantes desta tecnologia altamente versátil. Entre os momentos mais engraçados, Lopez mostrou como o Docker poderia ser executado dentro do Wasm, adicionando múltiplas camadas de virtualização. O fio condutor da sua apresentação, porém, é que Wasm não deve ser rotulado.
No último dia do Wasm I/O, Ron Evans, criador do TinyGo (entre outras coisas), apresentou uma estrutura de código aberto para desenvolvimento integrado da Internet das Coisas (IoT). Desenvolvido por Wasm, o Mechanoid oferece suporte ao desenvolvimento incorporado em uma ampla variedade de linguagens de programação, incluindo Rust, Go e Zig. IoT é uma área em expansão para WebAssembly. Embora já tenha conquistado uma posição em dispositivos de entretenimento, Evans explorou seu uso em microcontroladores, empurrando o Wasm para classes de dispositivos minúsculos.
Conclusão
Em muitos aspectos, Wasm mostrou seu amadurecimento. Quase todas as linguagens convencionais agora suportam WebAssembly. Kubernetes está provando ser um ambiente popular para hospedar aplicativos Wasm, e o modelo de componente WebAssembly está revelando as possibilidades revolucionárias do WebAssembly, incluindo a verdadeira programação poliglota.
Mas assim como o Java encontrou casos de uso além de sua intenção original, também vemos oportunidades de Wasm se abrindo em áreas fascinantes como IoT, bem como em áreas emergentes como Wanix. Isto serve como um bom lembrete de que maturidade não implica estagnação.
A postagem 4 grandes desenvolvimentos em WebAssembly apareceu pela primeira vez em The New Stack.