Olá pessoal! Conectamos o TestMace e continuamos a familiarizá-lo com as notícias mais quentes do mundo do JavaScript. O próximo passo é a tradução de um artigo sobre o WASI, uma tecnologia que permite que o WebAssembly seja usado fora dos navegadores

A Mozilla apresentou um projeto chamado WASI (WebAssembly System Interface) nesta semana para padronizar como o código do WebAssembly interage com o sistema operacional. Se o projeto for bem-sucedido, ele executará as mesmas funções que a máquina virtual Oracle Java, mas com muito mais eficiência e com funcionalidade avançada.
O WebAssembly (WASM) é um formato de instrução binário para uma máquina virtual que pode ser executada em várias arquiteturas de hardware. Código escrito em muitas linguagens como C / C ++, Go, Rust pode ser compilado no código WASM.
Muitos navegadores da web introduziram suporte para o WebAssembly, mas até esse momento não havia um padrão para trabalhar com ele fora do navegador. E agora havia WASI.
"É preciso haver uma maneira de o código interagir com o sistema fora do navegador, ou seja, uma interface do sistema", explicou o desenvolvedor da Mozilla, Lin Clark, neste post do Mozilla Hacks. "A plataforma WebAssembly ainda não possui esse método."
WASM + WASI
Usando o WASI, o código WASM pode ser executado em um navegador ou em qualquer outro ambiente compatível, o que fornece desenvolvimento independente da linguagem de plataforma cruzada. Enquanto a interface do sistema operacional portátil (POSIX) visa garantir a portabilidade do código fonte do programa entre sistemas operacionais do tipo UNIX, o WASI foi projetado para suportar a compatibilidade de arquivos binários compilados em diferentes dispositivos e sistemas operacionais. O padrão fornece um tempo de execução universal, cuja velocidade é próxima da nativa.
A Java Virtual Machine (JVM) faz a mesma coisa, mas é necessário um plug-in para executar o código Java no navegador. Embora a flexibilidade da linguagem, como a plataforma WebAssembly proposta, possa ser alcançada em Java usando o GraalVM , o ecossistema Java ainda está em segundo plano devido a eventos relacionados às alegações de violação de propriedade intelectual da Oracle.
O formato WASM, fornecendo acesso seguro à memória e validação conveniente, possui uma vantagem sobre os applets Java em termos de segurança, embora possa ser atacado para alterar o fluxo de controle inicial do programa . Também se dá bem com C / C ++ e Rust.
O líder da equipe do WebAssembly da Mozilla, Till Schneider, explica a diferença entre o WebAssembly e o Java no Twitter da seguinte forma: "O WebAssembly foi projetado para escalar de dispositivos em miniatura a grandes grupos de servidores ou CDNs. O formato é muito mais independente de linguagem que Java, e implementação é muito menos intensiva em recursos ".
Se as vantagens potenciais do WASI ainda não são óbvias para você, eis o que um dos criadores do Docker Solomon Hykes disse sobre ele: “Se o WASM + WASI existisse em 2008, não teria ocorrido a nós criar o Docker. O WebAssembly do servidor é o futuro para este Computação. Faltava uma interface de sistema padronizada. Espero que a WASI resolva esse problema! "
Nessa onda de otimismo, a Fastly lançou na quinta-feira o Lucet , um compilador e ambiente nativo para executar o código WASM WebAssembly em ambientes em nuvem. Ele complementa o Mozilla Wasmtime, um ambiente de tempo de execução de código WASM fora do navegador.
Obviamente, o WASI ainda está longe do ideal. O WebAssembly também seria bom para refinar ainda mais, por exemplo, adicionar a capacidade de acessar o DOM do navegador . Embora os desenvolvedores já tenham feito um excelente trabalho, fornecendo um formato binário independente de plataforma única. Enquanto isso, desejo a você uma experiência bem-sucedida com Java.