- antirez define o processo de escrever software com ajuda de IA como ‘Automatic Programming’, e prevê que isso em breve se tornará o padrão para desenvolvimento de software
- Mesmo usando o mesmo LLM, a intuição, o design e o ajuste contínuo de direção feitos por humanos fazem o resultado variar bastante
- Vibe coding é uma forma de deixar a IA fazer tudo sem grande entendimento, enquanto a programação automática parte de uma visão clara e controle por parte do desenvolvedor
- O código gerado por IA também se baseia em dados de pré-treinamento e julgamento acumulados por humanos, e a propriedade do resultado pertence ao desenvolvedor
- A programação está se tornando cada vez mais automatizada, mas ideias e visão continuam sendo domínio humano
Definição do conceito de Automatic Programming
- O processo de escrever software com suporte de IA é chamado de programação automática (Automatic Programming)
- Esse modelo em breve se tornará o processo padrão para criar software
Diferença em relação ao vibe coding
- Vibe Coding é uma forma de gerar software com IA sem participar do processo de fato
- Ao descrever o que se quer em termos muito genéricos, o LLM gera a primeira ideia/design/código que surge naturalmente com base nos dados de treinamento e na amostragem específica daquela execução
- O vibe coder, no máximo, relata o que não funciona ou o que saiu diferente do esperado
- Programação automática é uma abordagem voltada para alta qualidade e que segue rigorosamente a visão de software de quem o produz
- Essa visão é multicamadas: vai desde definir exatamente como realizar determinada tarefa até instruir diretamente a IA sobre como escrever uma função específica
- O que será feito também é um elemento central
A importância do fator humano
- Mesmo com o mesmo LLM, o resultado muda muito conforme a intuição, o design, o ajuste contínuo de direção e as ideias sobre o software da pessoa que conduz o processo
- A expressão “Claude fez o vibe coding deste software” não é apropriada
- Se você entende o que está acontecendo e está efetivamente produzindo software real, então esse é o software que você está produzindo
Perspectiva sobre a propriedade do código
- Os dados de pré-treinamento não são a única parte que o LLM aprende (RL também tem grande peso), mas foram produzidos por humanos
- Portanto, não se trata de se apropriar de outra coisa
- É possível chamar o código gerado por IA de “nosso”, e há o direito de fazer isso
- O pré-treinamento é um presente coletivo que permite que muitas pessoas façam coisas que jamais conseguiriam sozinhas
- É semelhante a estar conectado de algum modo a uma mente coletiva
- O código gerado por programação automática é seu código, seu resultado, sua produção, e você pode ter orgulho disso
O caso do Redis
- O Redis não tem tantas novidades técnicas especiais
- No começo, era apenas uma combinação de estruturas de dados básicas e código de rede que qualquer programador de sistemas competente poderia escrever
- Ainda assim, tornou-se um software extremamente útil por causa das ideias e da visão contidas nele
Conclusão
- A programação agora foi automatizada, mas a visão ainda não foi automatizada
1 comentários
Comentários do Hacker News
Com mais de 30 anos de carreira na indústria, ultimamente tenho mergulhado fundo em desenvolvimento orientado por especificação (spec-driven development)
Uso Claude Code e GPT-5.2 (CoPilot) para gerar requisitos e refino a especificação repetindo várias rodadas de auto-revisão (self-review)
A partir da especificação finalizada, o Claude Code escreve o plano de implementação e o código, e as funções principais ficam prontas em 20 minutos
Isso me lembra o modelo waterfall da época em que trabalhei na indústria de defesa, mas sinto que, graças à IA, agora é possível uma abordagem de “cascata aumentada (augmented cascade)” muito mais rápida e refinada
Agile foi uma resposta para que empresas onde essas condições eram impossíveis conseguissem sobreviver lançando produtos rapidamente
Fico curioso se há exemplos públicos de especificações que valham como referência. Assim como a geração passada admirava o código do Quake de John Carmack, acho que a próxima geração vai reverenciar grandes especificações
Humanos não conseguem prever toda a complexidade e todos os casos de exceção. Quando você realmente constrói algo, sempre aparece um “nisso eu não tinha pensado”
Se os requisitos já estão claros, ele não é necessariamente preciso
A diferença é que, em vez de equipes subordinadas, usa-se um LLM
Material relacionado: Design by Contract (Goodreads), PDF original
Não concordo com a expressão “o pré-treinamento (pre-training) é um presente coletivo da humanidade”
Se foi roubado, não é presente
Mesmo que o código tenha sido gerado por LLM, se eu assumo a responsabilidade e faço a manutenção, então considero que é meu código
O problema surge quando o autor foge da responsabilidade
Depois de usar Claude Code e Opus 4.5, cheguei a uma conclusão parecida
Eu chamo isso de “zen coding”. Trato a base de código como um jardim zen, projeto a especificação com cuidado e reviso linha por linha
A IA não deve agir como projetista, mas como ferramenta
Quem tem uma especificação clara consegue obter código de qualidade muito mais alta da IA
Vibe coding é experimentação intuitiva; Zen coding é treinamento artesanal
Quando ouço algo como “foi o Claude que deu”, já tenho a sensação de que ainda é um código com cara de rascunho
Não precisa culpar a ferramenta nem pedir desculpas; basta melhorar o resultado
A expressão “pré-treinamento é um presente da humanidade” me incomoda
Muitos desenvolvedores de open source não queriam que seu código fosse usado no treinamento de LLMs
Em parte do código gerado por LLM, já vi casos em que ele praticamente copiava código de livros ou blogs que eu conhecia
Acho que, no mínimo, o correto seria citar a origem
Se código GPL foi usado para treinar um LLM, é possível interpretar que o resultado também deveria ser publicado sob GPL
Por exemplo, Kafka pediu que seus manuscritos fossem queimados, mas hoje eles se tornaram clássicos da literatura
A “programação automática” dos anos 1950~60 na verdade significava compiladores
As 4GLs dos anos 1980 eram linguagens de alto nível especializadas por domínio, e os LLMs de hoje estão na fase de gerar rascunhos a partir de especificações em linguagem natural
No fim, os humanos ainda precisam elevar a qualidade por meio de correções iterativas e mudanças de projeto
Talvez estejamos vendo agora a última geração de desenvolvedores artesanais (artisanal coder)
Artesãos como Antirez lidam com conceitos que ultrapassam os limites humanos e criam softwares como o Redis, simples e ao mesmo tempo belos
A IA cria código numa velocidade que humanos não conseguem alcançar, mas isso não é o pincel nem a tela
A nova geração será artesã de um jeito completamente diferente
Eu também sinto medo, mas estou abraçando essas novas ferramentas e experimentando uma nova era do ofício
Soma-se a isso a habilidade de lidar bem com IA; o conhecimento anterior não se torna desnecessário
No texto do Antirez, foi marcante a distinção clara entre “vibe coding” e “automatic programming”
É uma mudança parecida com a transição da época em que arquitetos desenhavam plantas à mão para BIM, CAD
Na era da IA, o desenvolvedor não está codando menos; o foco do valor é que mudou
“vibe coding vs automatic coding” não é uma dicotomia, mas um espectro
Mesmo dentro de um único projeto, dá para misturar abordagens em vários níveis
O importante é usar a ferramenta de forma crítica e continuar melhorando
Alguns chamam isso de “spec strumming”