Reescrevendo o Bun em Rust
Contexto da Reescrita e Processo
- O Bun foi portado de Zig para Rust em grande parte por meio do modelo Fable da Anthropic e do Claude Code, ao longo de ~11 dias, usando ~50+ fluxos de trabalho automatizados e extensos conjuntos de testes.
- A reescrita é apresentada como sendo em grande parte mecânica, função por função, com estrutura e modelos de dados preservados, depois refinados iterativamente por revisões adversariais com IA e supervisão humana.
- A versão em Rust já está rodando em produção para o Claude Code desde meados de junho sem falhas catastróficas óbvias, o que alguns veem como uma forte validação.
Custo e Economia
- O gasto em tokens foi de ~5,9B de input não em cache, 72B de input em cache, 690M de tokens de output, estimado em ~US$165 mil a preços de API.
- Muitos argumentam que isso é mais barato e muito mais rápido do que uma pequena equipe passando um ano; outros respondem que equipes humanas (especialmente fora de regiões de alto custo) ou modelos mais fracos/baratos poderiam igualar isso com custo total menor.
- Alguns observam que, mesmo que isso seja caro agora, reescritas semelhantes provavelmente ficarão muito mais baratas.
Qualidade do Código, Segurança e Manutenibilidade
- Benefícios relatados: correção de vazamentos de memória, menos travamentos, redução de ~20% no tamanho do binário (com otimizações do linker), ganhos de desempenho de ~5%.
- Defensores dizem que as garantias do Rust, os erros do compilador e as ferramentas Miri/de memória oferecem segurança mais forte do que Zig mais guias de estilo.
- Críticos destacam o grande uso de
unsafe(~13 mil instâncias no início), UB inicial encontrado pelo Miri, e argumentam que muitos blocos unsafe e comentários SAFETY fracos sugerem invariantes do Rust mal compreendidas. - Há discordância sobre se código gerado por IA nessa escala é realmente “manutenível” ou apenas parece estável sob testes.
Impacto em Zig e Debates sobre Linguagens
- Alguns veem isso como uma má aparência para Zig: um port “ingênuo” para longe dele aparentemente melhorou a estabilidade e o tamanho.
- Outros enfatizam que o código Zig do Bun foi escrito contra uma linguagem pré-1.0 em evolução e que ganhos semelhantes eram possíveis ao apertar o código e as ferramentas de Zig.
- Longas subthreads debatem Rust vs Zig vs C/C++ vs linguagens com GC em segurança, ergonomia, tempos de compilação e adequação como alvos para LLMs.
Ferramentas de IA, “Vibe Coding” e Futuro do Trabalho
- Muitos veem isso como uma demonstração de tradução em grande escala assistida por LLM quando apoiada por um conjunto de testes forte e independente da linguagem.
- Alguns chamam o processo de “vibe coding” (dirigido por LLM sem revisão humana exaustiva); outros argumentam que traduzir com testes é diferente de desenvolvimento de IA irrestrito e especulativo.
- Há ansiedade ativa sobre o que tais capacidades significam para empregos em software, especialmente funções de nível intermediário; outros esperam efeitos no estilo Jevons (mais software produzido, não menos engenheiros).
Governança do Projeto e Preocupações da Comunidade
- Vários კომენტadores criticam como a reescrita foi comunicada e mesclada:
- Garantias iniciais de que a branch em Rust poderia ser descartada vs. merge rápido depois.
- Nenhum plano de LTS ou correção de segurança para a linha Zig, forçando efetivamente upgrades.
- Percepção de que o Bun é conduzido mais pelo marketing e pelas necessidades internas da Anthropic do que por sua comunidade externa.
- Os defensores respondem que o código pré-merge deve ser bruto, regressões foram documentadas e corrigidas, e os resultados para os usuários até agora parecem positivos.