Vibe Coding: Entregando o Código ao AI e o Futuro das Manutenções — Aprendendo Devagar sobre AI162
O Que o Tradutor Tem a Dizer
- A essência do “Vibe Coding” é acumular dívidas tecnológicas a uma velocidade louca, impulsionada pela AI.
- A programação AI é uma espada de dois gumes: é maravilhosa para protótipos, mas pode ser um verdadeiro desastre quando se trata de projetos centrais de longa duração.
- Fazer com que pessoas sem conhecimento técnico desenvolvam produtos principais com AI é como dar a uma criança um cartão de crédito sem limites — um momento de glória que resultará em dívidas intermináveis no futuro.
- O segredo para dominar a AI não é abandonar o pensamento crítico, mas sim aprimorar a habilidade de “construção teórica”. As pessoas devem ser as que mantêm as rédeas, e não deixar-se levar pela AI.
“Vibe Coding”: Criando Dívidas Tecnológicas
Steve Krouse
Embora muitas pessoas estejam confusas sobre isso, o termo “Vibe Coding”, criado por Andrej Karpathy, refere-se a um modo de programação assistida por AI onde você “não consegue perceber a existência do código”.
Código Herdado / Dívida Técnica
Para aqueles códigos que ninguém consegue entender, já temos um termo: código herdado / dívida técnica.
O código herdado é amplamente criticado, e isso não é à toa. Mas a questão é, o código não está ali? Não é só olhar para o código para entendê-lo?
Está muito enganado. Códigos que ninguém consegue compreender são, de fato, dívidas técnicas. Para entender e depurar um trecho de código desconhecido, é necessário um tempo considerável; e adicionar novas funcionalidades sem causar novos bugs é uma tarefa ainda mais desafiadora.
A essência da programação é construir teoria, e não apenas empilhar linhas de código. Todos entendemos isso, por isso reclamamos de departamentos que tentam quantificar a produção de programadores com base no número de linhas de código.
Quando você utiliza o “Vibe Coding”, a velocidade com que acumula dívidas técnicas é a mesma com que a AI gera código. Por esta razão, o “Vibe Coding” é, na verdade, a escolha perfeita para desenvolvimento de protótipos e projetos únicos: afinal, apenas códigos que necessitam de manutenção a longo prazo se tornam códigos herdados!
Protótipos e Códigos Temporários
Eu mesmo já desenvolvi algumas pequenas aplicações com “Vibe Coding”, como:
- Calcular a Taxa de Crescimento Semanal
- Avaliar o jogo Connections do The New York Times
- Propor casamento à minha noiva
Não planejei iterar continuamente essas aplicações, então não me importei em não entender seu código. Além disso, como essas aplicações são pequenas, mesmo que um dia eu precise revisitar o código, a dívida técnica será limitada. Usando essa abordagem, desenvolvi aplicações muito mais rapidamente do que pelos métodos tradicionais; todo o processo foi extremamente satisfatório.
“Vibe Coding” É uma Questão de Grau
“Vibe Coding” é uma questão de grau, dependendo da profundidade de sua compreensão sobre o código. Quanto mais você compreende, menos você age “na intuição”.
Ao solicitar uma funcionalidade, um engenheiro pedindo para desenvolver “um aplicativo web com banco de dados persistente” terá um entendimento muito mais claro do que uma pessoa sem formação técnica que pede simplesmente “para fazer um app” (mesmo que ela não consiga distinguir entre um aplicativo web e um nativo, ou entenda o que é persistência de dados).
Entregar o Cartão de Crédito a uma Criança
A pior situação possível é permitir que um não programador use o “Vibe Coding” para desenvolver um grande projeto que precise de manutenção a longo prazo. Isso é o mesmo que dar um cartão de crédito a uma criança sem explicar o que é “dívida”.
É fácil imaginar como isso é empolgante no início: “Meu Deus, só preciso passar esse cartãozinho na loja e posso pegar o que eu quiser!”
Isso é semelhante ao discurso popular de hoje: “AI pode fazer tudo! Todo mundo é programador! Olha o aplicativo que a AI gerou para mim!”
Contudo, um mês depois, a fatura do cartão de crédito chega: “Eu realmente precisava comprar aquelas coisas? Como vou resolver essa bagunça agora?”
Os desenvolvedores que utilizam “Vibe Coding” enfrentarão a mesma situação embaraçosa: “Meu código quebrou! O que são todos esses arquivos e pastas? Como eu conserto isso? Posso reembolsar os 400 dólares que paguei para a AI gerar este código?”
Se você não entende o código, a única saída é deixar a AI continuar ajudando a corrigir. Isso é como “fazer dívida com dívida”, usando um novo cartão de crédito para pagar outro.
2025: Como Fazer Programação em Par com a AI de Forma Séria
Se você pretende construir um projeto sério que necessite de manutenção a longo prazo em 2025, o conselho de Andrej é sábio:
Você deve tratar a AI como um estagiário novato e amarrá-lo com uma corda bem curta. Este estagiário é um gênio que sabe tudo sobre software, é quase uma enciclopédia viva. Mas, ao mesmo tempo, ele é excessivamente entusiasmado, sempre falando bobagens, sem limites, e sem o mínimo senso do que é um bom código. Portanto, você precisa enfatizar: abrande o ritmo, mantenha-se defensor, seja cauteloso e até um pouco obsessivo. Aproveite cada oportunidade para aprender na prática e não delegue completamente o trabalho a ele.
— Andrej Karpathy, twitter
Como Abraçar a AI para Construir
Na Val Town, já integramos a AI em nossos produtos de várias maneiras. Nosso assistente AI, Townie, age como um agente inteligente, capaz de ler e escrever código, executar programas, verificar logs e iterar continuamente até que a tarefa esteja concluída.
Townie é uma ferramenta fantástica para “programação intuitiva”. Recomendo fortemente para amigos que compreendem os prós e contras. Às vezes, utilizo-o para uma programação rápida com “Vibe Coding”; enquanto para projetos que prezo muito, mantenho as rédeas apertadas, permitindo apenas modificações precisas como uma “cirurgia”. Ambas as abordagens são divertidas e eficientes.
O campo da programação AI evolui rapidamente e o futuro é difícil de prever. Mas estou convencido de que a “construção teórica” continua sendo o núcleo da construção de software complexo. Isso significa que a expertise técnica humana ainda é indispensável! Ao mesmo tempo, sou otimista de que a AI continuará a tornar a programação uma tarefa mais gratificante de maneiras inesperadas.
No entanto, se você tem amigos sem formação técnica que estão gastando tudo com “programação intuitiva” em busca de seu sonho de um “App de um bilhão”, tenha certeza de que encaminhar este artigo a eles é importante. “Programação intuitiva” não os levará ao sucesso. Eles, mais cedo ou mais tarde, precisarão aprender a olhar para o código com seus próprios olhos 😱, e no final perceberão uma dura realidade: muito melhor do que consertar um sistema herdado que ninguém entende, é começar do zero para construir um novo repositório de código com uma estrutura clara.
Este artigo é uma versão condensada de uma palestra que fiz no mês passado sobre o papel do cérebro humano na programação. Agradeço à minha noiva Emily por me ouvir falar sobre esses tópicos nos últimos meses e por gravar o vídeo da palestra. Obrigado a Malte e Rippling por organizar este evento.
Agradeço a Geoffrey Litt, Jimmy Koppel, Max McDonnell, Tom MacWright, Charmaine Lee, Brent Jackson e Dan Shipper pelo feedback sobre este texto. Também agradeço a Simon Willison e Andrej Karpathy por emitir vozes racionais em meio ao entusiasmo e pessimismo em torno da AI.
Link do original: https://blog.val.town/vibe-code