7 pontos por davespark 2026-02-01 | 1 comentários | Compartilhar no WhatsApp

O ex-engenheiro do Facebook Christopher Chedeau (Vjeux) fez um experimento de portar o motor de batalha do Pokemon Showdown (cerca de 100 mil linhas em TypeScript) para Rust usando o Claude Code

Objetivos do projeto

  • Construir um oráculo rápido (sistema de referência) para treinamento de IA de batalha de Pokemon
  • Implementação existente em TypeScript → lenta demais (impossível simular milhões de batalhas)
  • Linguagem-alvo: Rust (alto desempenho) → mas ele tinha zero experiência com Rust

Principais resultados

  • Aproximadamente 100 mil linhas portadas em 1 mês (trabalho real de cerca de 2 a 4 semanas)
  • Cerca de 5.000 commits gerados
  • Velocidade de execução 3,5x maior
  • Taxa de correspondência de 99,96% nos testes diferenciais (com base em 2 milhões de batalhas aleatórias)
    • Os 0,04% restantes são considerados provavelmente bugs no código original em TS

Estratégias centrais para o sucesso

  • Introdução de testes diferenciais (differential testing)
    • Execução simultânea do código original em TS e da versão em Rust → comparação dos resultados
    • Casos divergentes → mostrar os logs ao Claude e pedir correções
  • Tornou possível validar o trabalho mesmo sem praticamente conhecer a sintaxe de Rust

Principais dificuldades enfrentadas pelo Claude

  • Faz bem o porting de arquivos individuais ↔ problemas frequentes na integração entre arquivos
    • Ex.: definir o mesmo conceito (move) em structs diferentes
  • Limite da janela de contexto → perda de informações importantes durante o processo de resumo intermediário
  • Tendência a tentar “melhorar” o código → ignorava a instrução explícita de “porting linha por linha” e tentava refatorar → gerando muitos bugs
  • Pedidos de otimização → os planos pareciam ótimos, mas quase não trouxeram ganho real de desempenho (alguns até ficaram mais lentos)

Hack curioso de workflow

  • Automação das solicitações de aprovação do usuário feitas pelo Claude
    • AppleScript para apertar Enter automaticamente a cada poucos segundos → execução autônoma 24 horas por dia
    • (Havia risco de segurança, mas ele aceitou isso por se tratar de um oráculo de uso único)

Estado atual das ferramentas de código com IA (avaliação)

  • Transformações mecânicas e porting em grande escala → muito fortes
  • Tarefas de nível mais alto, como otimização de desempenho e design de arquitetura → ainda insuficientes
  • Debate no Hacker News
    • Céticos: impossível de manter, código que “só compila”
    • Defensores: com testes diferenciais, a confiabilidade é suficiente + enorme economia de tempo em relação a humanos

3 lições para aplicação prática

  • Um sistema de testes automatizados rigoroso é indispensável (sem testes diferenciais, a chance de fracasso é muito alta)
  • Instruções claras e de escopo estreito funcionam melhor (“porting linha por linha” O vs “melhore isso” X)
  • IA é apenas uma ferramenta → o desenvolvedor ainda precisa diagnosticar problemas, formular perguntas e manter a direção

→ Um caso em que alguém sem qualquer conhecimento de Rust conseguiu migrar um código na escala de 100 mil linhas para um nível prático em um mês → um experimento representativo que comprova a utilidade prática da codificação com IA e ao mesmo tempo expõe claramente seus limites

https://aisparkup.com/posts/8701

1 comentários

 
ahwjdekf 2026-02-03

Isso ignora o fato de que escrever casos de teste não é uma solução universal. Não basta apenas que a entrada e a saída estejam corretas. No fim, será preciso revisar novamente todas as 100 mil linhas.