Mãos digitais digitando código em um terminal com linhas de código azuis e brancas, simbolizando o ato de programar.

AI falhou? Desenvolvedores voltam ao código 'à mão'

Por Anselmo Bispo • 5 min de leitura

A promessa da inteligência artificial para otimizar a escrita de código parecia um caminho sem volta. Mas nem tudo são flores e algoritmos bem-sucedidos. Um desenvolvedor australiano, conhecido como k10s, acendeu um alerta para a comunidade ao revelar que está abandonando a IA para projetos mais complexos, voltando ao que ele chama de “artesanato” da programação “à mão”.

No seu diário de desenvolvimento, ele detalha a saga com um projeto de interface gráfica (TUI) para Kubernetes, com foco em GPUs. Após sete meses usando os atalhos da IA para acelerar o desenvolvimento, ele arquivou todo o trabalho e decidiu recomeçar do zero. Mas afinal, o que a IA está errando quando os projetos de código ficam grandes e espinhosos?

A IA e o desafio da complexidade

A experiência de k10s não é isolada. A princípio, ferramentas de IA como GitHub Copilot e ChatGPT parecem mágica, acelerando a escrita de funções, a correção de bugs simples e a criação de protótipos. O entusiasmo inicial é compreensível. Para tarefas repetitivas ou para iniciar módulos menores, a IA se mostra uma aliada poderosa, gerando códigos funcionais rapidamente.

No entanto, segundo a percepção do desenvolvedor, essa facilidade superficial esconde um custo invisível à medida que o projeto cresce e suas ramificações se tornam mais intrincadas. Ele descreve a IA como uma espécie de viciante. No início, traz um alívio e uma sensação de produtividade. Mas com o tempo, essa dependência pode minar a capacidade do desenvolvedor de compreender a arquitetura geral do sistema e de resolver problemas verdadeiramente desafiadores.

“Sempre acreditei que a programação era uma forma de engenharia”, escreve k10s. “Mas com o advento das ferramentas de IA, comecei a tratá-la mais como um jogo de adivinhação, alimentando o prompt e esperando pelo resultado desejado.”

Quando o 'Vibe Coding' encontra um limite

O conceito de vibe coding, que k10s menciona ter usado, descreve um estado de fluxo onde o desenvolvedor está totalmente imerso na programação, sentindo a intuição guiar cada linha de código. É uma abordagem mais artística, menos rígida, que busca a fluidez e a criatividade. A princípio, ele tentou conciliar essa abordagem com a assistência da inteligência artificial.

Para um projeto como uma interface de terminal (TUI) complexa, que precisa gerenciar recursos de GPU em um ambiente Kubernetes, cada detalhe conta. A TUI precisava ser consciente de diferentes modelos de GPU, monitorar seu status, alocar recursos e apresentar tudo de forma clara. É um domínio onde a abstração e a precisão são cruciais.

O problema, como k10s percebeu, é que a IA, apesar de gerar código válido, falhava repetidamente em entender a intenção por trás de requisitos não explícitos. Era como ter um assistente muito rápido que, por vezes, entregava o ingrediente certo, mas na proporção errada ou com a especiaria trocada, alterando o sabor final do prato sem que o chef percebesse de imediato.

A perda de contexto e da compreensão arquitetural

Um dos maiores desafios apontados é a dificuldade da IA em manter o contexto de um sistema complexo. Ela é boa em completar frases, mas não em escrever um livro coerente com dezenas de capítulos interligados.

No campo da programação, isso significa que a IA pode gerar trechos de código que, isoladamente, parecem corretos, mas que não se encaixam na arquitetura geral do projeto ou que introduzem gargalos ou vulnerabilidades invisíveis. Para o desenvolvedor, isso se traduz em:

A decisão de k10s de descartar sete meses de trabalho e recomeçar manualmente não foi fácil, mas reflete uma necessidade de reafirmar o controle e a compreensão pessoal sobre o código. Ele agora busca o que chama de “sensação tátil” da programação, onde cada linha é pensada, escrita e compreendida em sua totalidade.

O papel da IA em um cenário híbrido

Este movimento não significa um fim para a IA na programação, mas sim um ajuste de expectativas. A inteligência artificial ainda tem um papel crucial a desempenhar, especialmente em:

A chave, como muitos especialistas em desenvolvimento começam a observar, está na colaboração, e não na substituição. A IA como copiloto, e não como piloto automático. A experiência de k10s serve como um lembrete valioso de que, embora a tecnologia avance, a mente humana, com sua capacidade de abstração, planejamento e compreensão profunda de sistemas, continua sendo o motor essencial para a inovação complexa. Quem sabe a próxima grande revolução não seja a volta ao básico, munidos de uma compreensão mais lúcida sobre as ferramentas que temos à disposição?

Tags: inteligência artificial programação desenvolvimento vibe coding código manual

Perguntas Frequentes

O que é 'vibe coding'?

'Vibe coding' é um estado de fluxo na programação, onde o desenvolvedor está totalmente imerso e a intuição guia a escrita do código, buscando fluidez e criatividade.

Por que o desenvolvedor k10s descartou o código gerado por IA?

k10s descartou o código porque a IA falhou em manter o contexto de um projeto complexo, introduzindo dificuldades na depuração, manutenção e perda de controle sobre a arquitetura geral do sistema.

A IA é inútil para programadores?

Não. A IA ainda é útil para automação de tarefas repetitivas, sugestões e aprendizado, pesquisa de código e exploração de conceitos, atuando como um copiloto e não como um substituto total.

Quais os principais problemas da IA em projetos de código complexos?

Os principais problemas são a dificuldade em manter o contexto de um sistema inteiro, gerar código que não se encaixa na arquitetura, e introduzir complexidades na depuração e manutenção, levando à perda de controle do desenvolvedor.