Em um movimento estratégico, a Ladybird decidiu adotar a linguagem de programação Rust, com o auxílio de inteligência artificial, para otimizar seu motor JavaScript, o LibJS. De acordo com informações do Simon Willison, a transição foi motivada pela busca de maior segurança e eficiência na gestão de memória, algo que a equipe esperava alcançar com o Swift, mas que não se concretizou fora do ecossistema Apple.
Como foi realizada a transição para Rust?
O processo de migração começou com a tradução do LibJS, que inclui o lexer, parser, AST e gerador de bytecode. Estes componentes são relativamente autônomos e possuem uma extensa cobertura de testes através do test262, tornando-os um ponto de partida ideal. Andreas Kling, responsável pelo projeto, utilizou ferramentas como Claude Code e Codex para auxiliar na tradução. Kling destacou que a geração de código foi direcionada por humanos, com ele decidindo o que portar, em que ordem e como o código Rust deveria ser estruturado.
Qual foi o impacto da IA na migração?
A utilização de agentes de codificação permitiu que o projeto, que resultou em cerca de 25 mil linhas de código Rust, fosse concluído em apenas duas semanas, um tempo significativamente menor do que os vários meses que seriam necessários para realizar o mesmo trabalho manualmente. Kling afirmou:
“Verificamos que cada AST produzido pelo parser Rust é idêntico ao do C++, e todo bytecode gerado pelo compilador Rust é idêntico ao do compilador C++. Sem regressões em todo o processo.”
— Publicidade —Google AdSense • Slot in-article
Quais são os benefícios dessa abordagem?
A existência de uma suíte de testes de conformidade de alta qualidade, como o test262, foi crucial para o sucesso do projeto. Isso permitiu que a equipe comparasse a saída com uma implementação confiável existente, tornando a engenharia com agentes uma aposta mais segura. Kling enfatizou que essa capacidade de comparação é um desbloqueio significativo para projetos dessa magnitude.