O Bun, um novo framework de desenvolvimento web, foi reescrito em Rust por um time de desenvolvedores usando IA. O criador do Zig, Andrew Kelley, criticou essa reescrita, alegando que o problema não está na linguagem Rust, mas sim na forma como os desenvolvedores programam.
Problema na Prática de Programação
Kelley argumenta que os problemas do Bun não eram causados pela linguagem Rust, mas pelo uso de práticas de programação inadequadas. Ele menciona que o Bun foi reescrito em Rust em apenas 11 dias por um time de agentes Claude trabalhando em paralelo. A reescrita foi motivada por problemas relacionados ao gerenciamento de memória e coleta de lixo.
Problemas Relacionados ao Gerenciamento de Memória
Kelley destaca que o gerenciamento de memória é um problema comum em muitos projetos, especialmente em linguagens como Rust. Ele menciona um vazamento de código-fonte recente que ocorreu durante a reescrita do Bun.
O Problema Não Está na Linguagem
Kelley argumenta que a linguagem Rust não é o problema. O problema está na forma como os desenvolvedores programam. Ele menciona que Rust tem uma coleta de lixo eficiente e um gerenciador de memória robusto, mas esses recursos só são úteis se usados corretamente.
Gerenciamento Manual de Memória em Rust
Kelley também menciona que, em casos onde o gerenciamento de memória é necessário, é feito de forma manual em Rust, usando código unsafe. Ele enfatiza que isso é feito de forma consciente e controlada, o que facilita a revisão, testes e outras verificações.
Conclusão
Kelley conclui que Rust é uma linguagem poderosa e eficiente, mas é necessário que os desenvolvedores entendam e usem corretamente seus recursos. Ele acredita que Zig tem um futuro promissor, mas duvida que possa substituir C ou melhorar significativamente a segurança do Rust.
Critica ao Uso de IA
A reescrita rápida do Bun em Rust usando IA foi criticada por Kelley. Ele argumenta que o uso de IA para reescrita de código não é uma solução adequada, pois não revisa ou testa o código. Kelley acredita que o uso de IA para reescrita de código é