Do código escrito à mão ao software gerenciado por IA: DHH reescreve biblioteca Python com Claude

Há um ano, David Heinemeier Hansson (DHH), criador do Rails, era um dos desenvolvedores mais entusiasmados em defender o prazer de escrever código à mão. Hoje, sua posição é bem diferente.

发布于 2026年8月17日generalGEO 评分: 07 次阅读
Do código escrito à mão ao software gerenciado por IA: DHH reescreve biblioteca Python com Claude

Do código escrito à mão ao software gerenciado por IA: DHH reescreve biblioteca Python com Claude

Introdução

Há um ano, o criador do Rails, David Heinemeier Hansson (DHH), era um dos desenvolvedores mais conhecidos defendendo a diversão de escrever código à mão.

Hoje, sua posição é bem diferente.

Depois de passar mais tempo com o Claude Code e o Codex, DHH recentemente usou o Claude Fable 5 para reescrever a biblioteca Python TerminalTextEffects em Rust. De acordo com o artigo original, o projeto consumiu cerca de 11 milhões de tokens, e foi concluído principalmente por meio de fluxos de trabalho autônomos de agentes.

Os resultados são impressionantes: o tempo de inicialização caiu de 87 milissegundos para 2 milissegundos, e a velocidade de renderização aumentou cerca de 9,6 vezes.

Este experimento também levantou uma questão maior. Se um programador experiente pode delegar uma tarefa de reescrita em larga escala a agentes de IA e obter resultados utilizáveis com intervenção direta mínima, o que exatamente os programadores precisarão fazer daqui a cinco anos?

Entregar o teclado à IA e depois se aposentar?

O contraste entre a posição de DHH e a do ano passado é evidente.

Em maio de 2025, ele publicou "Programar deveria ser uma sensação!", defendendo que a IA deveria ser mais próxima de um programador em par: adequada para consultar APIs, responder perguntas e ajudar a resolver problemas específicos, mas não para substituir o próprio ato de escrever código.

O artigo original citou uma posição ainda mais forte: se os desenvolvedores acabassem tendo que entregar o teclado completamente à IA, DHH afirmou que preferiria se aposentar.

Em uma conversa de seis horas com Lex Fridman, DHH também descreveu a sensação de perder a "memória muscular" quando a IA gerava código repetidamente para ele.

Um dos exemplos envolvia a criação de uma distribuição Linux. Ele pediu à IA que gerasse a mesma instrução condicional Bash várias vezes, mas percebeu que, por não ter escrito a instrução manualmente, não sentia que realmente a havia aprendido.

Isso trouxe uma questão mais profunda para ele: a programação assistida por IA enfraqueceria gradualmente a maneira como os desenvolvedores aprendem engenharia de software?

Mas, de acordo com o artigo original, em abril de 2026, sua posição já havia mudado para fluxos de trabalho orientados a agentes.

Hoje, ele discute abertamente: como será o desenvolvimento de software quando o teclado não for mais a principal interface?

Claude Fable 5 desmonta biblioteca Python e a reconstrói em Rust

O projeto escolhido por DHH foi o TerminalTextEffects (TTE), um motor de efeitos visuais para terminal que pode ser usado tanto como aplicativo de linha de comando quanto como biblioteca Python.

O TTE oferece movimento de texto, cores, gradientes, animações e outros efeitos visuais para terminal. Seu repositório público o descreve como um motor de efeitos visuais para terminal e documenta os dois usos: CLI e biblioteca Python.

O artigo original afirma que DHH pediu ao Claude para reescrever o projeto em Rust.

O projeto Rust resultante, chamado ttfx, foi colocado sob a organização Omarchy de DHH. Segundo o artigo, a nova versão executa 37 efeitos, empacotada como um executável de cerca de 3 MB, sem necessidade de runtime Python.

A execução relatada levou cerca de 3 horas e 11 minutos.

A implementação em Rust contém aproximadamente 21.000 linhas de código principal, próximo ao tamanho da versão original em Python.

O fluxo de trabalho também é bem diferente do "autocompletar de IA" tradicional.

O artigo original menciona que oito agentes trabalharam em paralelo em branches independentes. Cada um lia o código, gerava a implementação, compilava o resultado, executava os testes, corrigia as falhas e passava para a próxima rodada.

Nesse sentido, a descrição de "feito de uma vez" não significa que a IA produziu tudo em uma única geração. Mas sim que DHH entregou a tarefa e deixou que os agentes assumissem o ciclo de desenvolvimento por conta própria.

Codex recebeu a mesma tarefa

DHH repetiu o experimento com o Codex.

De acordo com o artigo original, um único prompt foi suficiente para produzir outro resultado robusto. No entanto, a versão do Codex teria levado cerca de 30% mais tempo e custado cerca de 43 dólares, aproximadamente 290 reais.

Essa comparação é valiosa porque desvia a atenção da visão simplista de que "programação com IA é mágica ou péssima".

Dois agentes de programação diferentes podem receber a mesma tarefa ampla e produzir resultados utilizáveis, diferindo em velocidade, custo e comportamento no fluxo de trabalho.

A equipe da Anthropic também notou o experimento.

De acordo com relatos, o criador do Claude Code, Boris Cherny, respondeu publicamente ao resultado, e o pesquisador da Anthropic Thariq perguntou a DHH quanto planejamento ou design de fluxo de trabalho ele havia investido na reescrita.

A resposta de DHH foi, talvez, a parte mais surpreendente.

Ele disse que basicamente deixou o Claude criar o plano e simplesmente soltou o controle.

Sem fluxos de trabalho pré-construídos e meticulosamente projetados, sem uma longa lista de marcos definidos manualmente e sem intervenção contínua para orientar.

A abordagem foi deliberadamente de não intervenção.

Feito de uma vez não significa às cegas

Há uma distinção importante aqui.

Uma tarefa de codificação totalmente autônoma ainda depende de o agente ter informações suficientes para julgar o que conta como sucesso.

O artigo original afirma que DHH primeiro pediu ao Claude para elaborar um plano e depois deixou que os agentes executassem, testassem e iterassem por conta própria.

Isso se aproxima mais de delegar um projeto de engenharia de software do que de pedir a um sistema de autocompletar que gere as próximas dez linhas de código.

Esse estilo de desenvolvimento orientado a agentes depende muito de:

  • Repositórios de código com estrutura compreensível.
  • Suites de testes automatizados robustas.
  • Comandos claros de build e execução.
  • Capacidade de criar branches e mesclar alterações.
  • Agentes que conseguem inspecionar falhas e tentar novamente.

Sem essas bases, a automação "feita de uma vez" se torna muito menos confiável.

A demonstração maior: a migração de um milhão de linhas do Bun

O TerminalTextEffects ainda é um projeto relativamente pequeno.

Portanto, o artigo original aponta para um caso maior: o Bun, o runtime JavaScript criado por Jarred Sumner.

O Bun historicamente foi construído em torno de Zig. Em 2026, seu código passou por uma grande migração para Rust, com uso extensivo de agentes de codificação por IA.

O artigo original descreve esse trabalho como uma migração de aproximadamente um milhão de linhas, concluída em menos de duas semanas.

Registros públicos posteriores confirmaram que a reescrita em Rust do Bun foi incorporada ao repositório principal. O pull request sobre a reescrita no GitHub foi mesclado em 14 de maio de 2026, e a migração substituiu o caminho de build anterior baseado em Zig por uma arquitetura priorizando Rust.

A migração é mais sutil do que simplesmente "a IA reescreveu o Bun".

A narrativa pública de Jarred Sumner, resumida por Simon Willison, descreve um fluxo de trabalho complexo e agêntico, envolvendo decomposição dinâmica de tarefas, execuções experimentais, revisão adversarial e validação repetida.

Essa é uma distinção significativa.

Migrações de software assistidas por IA em larga escala ainda exigem muita arquitetura de engenharia. A diferença é que, uma vez que os sistemas ao redor são bem projetados, grande parte do trabalho de implementação pode agora ser delegado a agentes.

O custo marginal do código está tendendo a zero

O artigo original extrai uma conclusão maior desses exemplos.

À medida que os agentes de codificação melhoram, o custo marginal de gerar outra implementação continua caindo.

Gerar código está cada vez mais barato.

Testar, refatorar, portar entre linguagens e iterar sobre defeitos está cada vez mais sendo feito por agentes em paralelo.

Isso muda a estrutura de custos do desenvolvimento de software.

A pergunta não é mais apenas:

Quantos desenvolvedores podemos contratar para escrever este código?

Ela cada vez mais se torna:

Quantas tarefas úteis de software um desenvolvedor pode delegar a um grupo de agentes de IA?

Essa é a transição da programação assistida por IA para o desenvolvimento de software gerenciado por IA.

A próxima geração de programadores pode ser mais como domadores de dragões

O medo óbvio é que, se menos pessoas escrevem ou leem código diretamente, os programadores desaparecerão.

O artigo original argumenta que essa conclusão é simplista demais.

"Ninguém escreve código à mão" não significa "não há programadores".

A natureza do trabalho pode mudar.

Em vez de passar a maior parte do dia implementando funcionalidades linha por linha, os desenvolvedores podem dedicar mais tempo a:

  1. Definir o que precisa ser construído.
  2. Estabelecer restrições e interfaces.
  3. Projetar o sistema de testes.
  4. Revisar arquitetura e trade-offs.
  5. Verificar se o código gerado pela IA está de fato correto.
  6. Decidir o que deve ser automatizado e o que não deve.

Nesse modelo, a habilidade escassa não é mais digitar sintaxe.

É saber o que vale a pena construir e o que o comportamento correto realmente significa.

Quando a IA escreve código, o que se torna valioso?

Se a implementação se torna cada vez mais barata, outras habilidades se tornam mais valiosas.

Julgamento de produto

Ainda é preciso alguém para decidir quais problemas merecem ser resolvidos.

A IA

Pode gerar rapidamente dez implementações, mas isso não lhe diz qual problema tem valor comercial, quais trade-offs são cruciais ou qual funcionalidade deve ser priorizada no desenvolvimento.

Design de Sistemas

Agentes podem escrever funções e classes, mas sistemas maiores ainda exigem limites, interfaces, modelos de dados, regras de implantação e requisitos de confiabilidade.

Testes

Quanto mais código a IA pode gerar, mais importantes se tornam os testes automatizados.

Sem uma camada de validação forte, aumentar a velocidade de codificação apenas amplia a quantidade de código que pode conter erros.

Direção Técnica

Alguém precisa dizer ao agente quais restrições devem ser seguidas.

Isso inclui orçamentos de desempenho, requisitos de compatibilidade, limites de segurança, dependências e metas de manutenção de longo prazo.

Em outras palavras, o papel humano sobe para um nível mais alto de abstração.

O futuro pode ser menos sobre codificação e mais

sobre orientação

Os exemplos do artigo original apontam para uma definição alternativa de programação.

Os desenvolvedores ainda podem precisar entender profundamente o código, mas o principal produto não é necessariamente mais o arquivo-fonte em si.

O produto é o sistema de requisitos, restrições, testes e julgamento que permite que o software correto surja.

É por isso que, mesmo que a codificação manual se torne menos central, engenheiros experientes ainda podem ter valor.

Aqueles que entendem arquitetura, modos de falha, necessidades do usuário e comportamento do sistema estarão mais aptos a comandar agentes de codificação autônomos.

Perguntas Frequentes

O DHH realmente reescreveu uma biblioteca Python usando IA?

Segundo o artigo original, sim. O fundador do Rails, David Heinemeier Hansson, usou o Claude Fable 5, por meio de um fluxo de trabalho multiagente altamente autônomo, para reescrever o TerminalTextEffects de Python para Rust.

O que é TerminalTextEffects?

TerminalTextEffects (ou TTE) é um motor de efeitos visuais para terminal, disponível também como biblioteca Python. Sua documentação pública descreve efeitos de movimento de texto, cor, gradientes, animações e outros processamentos visuais para terminais.

Como a reescrita em Rust difere da codificação comum com IA?

O artigo original descreve múltiplos agentes trabalhando em branches independentes, compilando código, executando testes, corrigindo falhas e mesclando resultados. A diferença-chave é que a IA lidou com a maior parte do ciclo de desenvolvimento, não apenas sugerindo linhas de código isoladas.

O Codex também concluiu a reescrita?

O artigo original afirma que o DHH deu ao Codex a mesma tarefa ampla, e também obteve outro excelente resultado. Supostamente demorou cerca de 30% a mais e custou aproximadamente 43 dólares.

O Bun também foi reescrito com agentes de IA?

Sim. A reescrita em larga escala do Bun de Zig para Rust foi concluída com ampla assistência de agentes de IA, e o código reescrito priorizando Rust foi mesclado ao repositório principal em maio de 2026.

Se a IA escreve a maior parte do código, os programadores vão desaparecer?

Não necessariamente. A mudança provável é que os programadores passem menos tempo digitando detalhes de implementação e mais tempo definindo requisitos, restrições, arquitetura, testes e critérios de aceitação.

Quais habilidades são mais importantes em fluxos de trabalho de codificação com IA?

Forte design de sistemas, testes, depuração, julgamento de produto e a capacidade de definir restrições claras tornam-se especialmente importantes. Saber como revisar e validar código gerado por IA também é essencial.

Ferramentas Relacionadas

  • Claude Code: o ambiente de codificação agêntico da Anthropic para desenvolvimento de software em nível de repositório.
  • OpenAI Codex: o agente de codificação da OpenAI para tarefas de desenvolvimento de software em várias etapas.
  • TerminalTextEffects: o projeto de efeitos de terminal em Python discutido no artigo original.
  • Bun: um runtime JavaScript que concluiu em 2026 uma grande reescrita de Zig para Rust.
  • Rust: a linguagem de programação de sistemas usada para reescrever as implementações do TTE e do Bun.

Links Relacionados

Resumo

O experimento do TerminalTextEffects do DHH é um exemplo útil de como agentes de programação com IA podem mudar a unidade de trabalho de software. Em vez de pedir à IA para escrever uma função por vez, os desenvolvedores estão cada vez mais delegando refatorações e migrações inteiras a equipes de agentes.

A reescrita do Bun aponta na mesma direção em uma escala ainda maior: quando o repositório, os testes, as ferramentas e os fluxos de trabalho são robustos o suficiente, a IA agora pode participar de trabalhos de engenharia de software amplos e de várias etapas.

A maior mudança pode não ser que a IA escreva mais código, mas que o trabalho do programador passe de escrever código para definir o que o código deve alcançar e provar que ele realmente alcança.