Jarred Sumner, criador e desenvolvedor principal da plataforma de servidor JavaScript Bun, criou um ramo no Git onde começou a reescrever o Bun de Zig para Rust. A reescrita está sendo realizada com a ajuda do assistente de IA Claude, para o qual foi elaborado um guia separado sobre a portabilidade. Segundo Jarred, por enquanto é apenas um experimento, e não um porta oficial, e há uma grande probabilidade de que não vá além do experimento e que o código reescrito não seja utilizado.
A portabilidade ainda não foi concluída, e neste estágio todo o interesse no projeto está focado em avaliar quão funcional será o porto, se ele passará no conjunto de testes do projeto principal e se será difícil manter o novo código. No final, está previsto um teste comparativo das versões do Bun em Zig e Rust.
Em dezembro do ano passado, o projeto Bun foi adquirido pela empresa Anthropic, portanto Jarred tem recursos para envolver modelos avançados de IA Claude na portabilidade. A plataforma Bun é utilizada nos produtos Claude Code e Claude Agent SDK, e a Anthropic está interessada em melhorar sua qualidade e desenvolvimento. O Bun é um dos projetos mais bem-sucedidos em Zig, mas os desenvolvedores de Zig e Bun têm opiniões divergentes sobre o uso de IA no processo de desenvolvimento. O projeto Zig estabeleceu uma proibição rigorosa do uso de grandes modelos de linguagem na preparação de pull requests, issues e comentários (até mesmo a tradução por IA de comentários não em inglês é proibida).
A introdução de tais restrições é explicada pelos desenvolvedores de Zig, que tiveram experiências negativas na revisão de pull requests gerados por IA, que consomem recursos e tempo (por exemplo, alterações insignificantes, alucinações de IA e commits excessivos de 10 mil linhas). Além disso, o projeto Zig se posiciona como orientado para os participantes, e não para a contribuição deles ao desenvolvimento — o principal objetivo da aceitação de pull requests não é adicionar novo código, mas ajudar no desenvolvimento de novos participantes.
O autor Bun discorda da proibição da IA no Zig e acredita que a IA se tornará uma lembrança nostálgica nos anos de 2025 e 2026, enquanto o desenvolvimento de software open source evoluirá para uma proibição da aceitação de código de humanos. As pessoas discutirão problemas, estabelecerão tarefas e prioridades, enquanto a escrita de código e o envio de alterações para repositórios se tornará uma tarefa da IA. Uma das razões para os experimentos de reescrita em Rust é o desejo de resolver problemas no Bun causados por vazamentos de memória e a política inaceitável de Zig em aceitar alterações que comprometam a compatibilidade.
Devido à proibição do uso de IA, os desenvolvedores do Bun se viram forçados a manter um fork próprio da ferramenta Zig, onde, graças ao uso de IA, conseguiram aumentar a compilação em 4 vezes através da paralelização da análise semântica e da geração de código. No entanto, segundo o comentário de um dos desenvolvedores do Zig, a razão para a rejeição dos patches não é a IA, mas sim que a paralelização da análise semântica afeta não apenas o compilador, mas também a própria linguagem — para implementar a funcionalidade proposta sem erros e incompatibilidades, são necessárias alterações na linguagem Zig. Em vez de paralelização, os desenvolvedores do Zig estão desenvolvendo a compilação incremental, que, segundo suas suposições, permitirá aumentar significativamente a velocidade de compilação.
A plataforma JavaScript Bun está se desenvolvendo como uma alternativa de alto desempenho às plataformas Node.js e Deno. O projeto é desenvolvido visando garantir compatibilidade com aplicativos de servidor para Node.js e suporta a maior parte da API do Node.js. A plataforma inclui um conjunto de ferramentas para criar e executar aplicações nas linguagens JavaScript e TypeScript, além de um runtime para executar aplicativos JavaScript sem navegador, um gerenciador de pacotes (compatível com NPM), ferramentas para executar testes, um sistema de construção de pacotes autossuficientes e uma camada para integrar manipuladores escritos na linguagem C. Em termos de desempenho, Bun supera significativamente Deno e Node.js (em testes baseados no framework React, a plataforma Bun supera Deno em 2 vezes e quase 5 vezes Node.js). Para executar JavaScript, é utilizado o motor JavaScript JavaScriptCore e componentes do projeto WebKit com patchs adicionais.
Fonte: opennet.ru
