4 pontos por GN⁺ 2023-11-04 | 1 comentários | Compartilhar no WhatsApp
  • Artigo sobre uma nova maneira de aplicar com eficiência linguagens de programação com coleta de lixo (GC) ao WebAssembly (Wasm)
  • A proposta de coleta de lixo (GC) tem como objetivo oferecer suporte a linguagens com GC no Wasm, o que é importante por causa da popularidade delas.
  • O artigo explora detalhes técnicos de como linguagens com GC, como Java, Kotlin, Dart, Python e C#, podem ser portadas para Wasm.
  • São discutidas duas abordagens principais: o método de port "tradicional" e o método de port com WasmGC.
  • O método de port "tradicional" envolve compilar a implementação existente da linguagem para o produto mínimo viável do WebAssembly (WasmMVP), lançado em 2017.
  • O método de port com WasmGC envolve compilar a linguagem para as próprias estruturas de GC do Wasm, conforme definido na proposta recente de GC.
  • O artigo discute os trade-offs técnicos entre essas duas abordagens, especialmente em tamanho e velocidade.
  • O WasmGC tem várias vantagens importantes, mas também exige novo trabalho nas toolchains e nas máquinas virtuais (VMs).
  • O artigo também explica que tipo de trabalho a equipe do V8 está fazendo nessas áreas, incluindo números de benchmark.
  • O artigo conclui que o WasmGC é uma nova forma promissora de implementar linguagens com GC no WebAssembly e expressa a expectativa de que ports com WasmGC se tornem uma técnica popular por causa de seus benefícios.

1 comentários

 
GN⁺ 2023-11-04
Comentários do Hacker News
  • Artigo sobre a introdução de linguagens de programação com coleta de lixo (GC) no WebAssembly (WASM)
  • Empolgação dos comentaristas com o potencial de “cintura fina” do WASM e com a ideia de que coletores de lixo e N+M são superiores a N×M no desenvolvimento
  • Curiosidade sobre a existência de algo que vá de WASM para JVM; um comentarista encontrou um no GitHub
  • Potencial de as threads do WASM oferecerem paralelismo real, com a esperança de que isso possa resolver de forma eficaz os problemas de assincronia, paralelismo e coleta de lixo
  • Menção de que as ferramentas WASM do Julia podem suportar esse recurso, com o exemplo de compilar um solver de ODE para WASM
  • Comparações com o sentimento de que “wasm é o novo llvm”, além do ceticismo de alguns comentaristas sobre quando uma aplicação mais ampla será possível
  • O lançamento desse recurso foi visto como impressionante, e alguns comentaristas duvidavam que ele realmente se concretizaria
  • Preocupações com a complexidade dos navegadores atuais e com a curva de aprendizado acentuada envolvida em criar o próprio navegador
  • Esperança de um futuro em que binários wasm possam ser usados como ponto de entrada de websites, o que pode melhorar o tempo de inicialização de aplicações web dinâmicas
  • O novo suporte a wasm no Kotlin foi visto como interessante, com uma versão experimental do Compose Multiplatform dando suporte a navegadores usando WASM
  • Certo ceticismo sobre o aumento da complexidade do WebAssembly com a introdução de um coletor de lixo
  • Pergunta sobre por que a postagem do blog não menciona Go, com especulações de que Go talvez não se beneficie dessas mudanças
  • Comparação com a recriação dos applets Java, com a sugestão de que reativar os applets Java poderia resolver muitos problemas