Geração de Código Determinística vs Probabilística: Por Que a Conversão para Rust com Vibe-Coding do Bun Levanta Bandeiras Vermelhas

✍️ OpenClawRadar📅 Publicado: May 20, 2026🔗 Source
Geração de Código Determinística vs Probabilística: Por Que a Conversão para Rust com Vibe-Coding do Bun Levanta Bandeiras Vermelhas
Ad

Noah Hall, escrevendo para The Tech Enabler, traça uma linha nítida entre geração de código determinística e probabilística. Ele usa a recente conversão "vibe-coded" de um milhão de linhas de código do Bun de Zig para Rust como um conto de advertência. Seu argumento central: sistemas determinísticos produzem resultados consistentes e revisáveis; LLMs introduzem incerteza que torna a revisão de código impossível em escala.

Geração de Código Determinística

Hall aponta para ferramentas determinísticas estabelecidas: o 2to3 do Python para migração de Python 2→3, e transpiladores para linguagens como Elm, PureScript e TypeScript que sempre produzem o mesmo JavaScript. Sua própria linguagem Derw pode gerar JavaScript, TypeScript ou Inglês; Tegan gera JavaScript ou Go; Mojie tem como alvo JavaScript, Python ou Inglês. Todos são baseados em transformação AST-para-AST — dado a mesma entrada, você sempre obtém a mesma saída. Consistência importa: "Se um bug é consistente, podemos corrigi-lo. Se um bug é inconsistente, fica exponencialmente mais difícil de corrigir."

Ad

Geração de Código Probabilística

LLMs variam a saída a cada execução — às vezes A, às vezes B. Hall criou o neuro-lingo há três anos como uma paródia: humanos escrevem apenas assinaturas de funções e comentários, e LLMs geram a implementação do zero a cada compilação. Um exemplo:

function add(a: number, b: number): number {
  // Adicionar dois números
}
function main() {
  // Imprimir "Hello World" no console
  // Imprimir o resultado de add(2, 3)
}

"Toda vez que neuro-lingo é compilado, o código é gerado do zero pelos LLMs. É ligeiramente diferente a cada vez. Às vezes introduz bugs. Às vezes é limpo e simples. Às vezes é caótico." Hall argumenta que fluxos de código totalmente orientados por IA estão fazendo exatamente isso, mas enviando para produção com responsabilidade humana.

A Falácia dos "Existem Testes"

Testes sozinhos não podem garantir qualidade. Hall cita o SQLite como o código mais testado: 155,8 KSLOC de código C vs. 92.053,1 KSLOC de código de teste (590× mais). Apesar de 100% de cobertura de ramos, milhões de casos de teste e extensos harnesses, o SQLite ainda depende de revisão humana. "Não é possível para um humano revisar 1 milhão de linhas de mudanças em 9 dias. O Bun não revisou o código que mesclou ao master."

Hall conclui que a geração de código determinística ainda precisa de validação, e a geração probabilística cria risco que escala com a contagem de linhas. O artigo fonte aprofunda cada exemplo.

📖 Leia a fonte completa: HN AI Agents

Ad

👀 See Also