Agentes de Codificação e Desenvolvimento de Software

Agentes de Codificação e Desenvolvimento de Software


Tive dois professores que me deixaram conselhos sobre desenvolvimento de software que permanecem comigo até hoje.

O planejador

O primeiro foi meu professor de informática do ensino médio, que me ensinou a importância de sentar e fazer anotações, fazer um plano, antes de começar a escrever código.

Acho engraçado pensar nisso quando leio artigos que dão conselhos sobre o uso de agentes de codificação como Claude Code e Codex, e a importância de fazer com que ele faça um plano primeiro para que ele escreva o código com sucesso.

O programador de baixo nível

O segundo professor foi o palestrante que ministrou a disciplina de Programação de Baixo Nível na universidade, que deixou claro que software são apenas dados que se movem de um lugar para outro, possivelmente sendo alterados ao longo do caminho.

Acho engraçado pensar na aula dele agora. A tarefa da qual mais me lembro foi pegar a saída do assembly de algum código C e mostrar o que a linguagem C de nível superior estava fazendo no assembly de nível inferior.

Você consegue imaginar um professor universitário daqui a alguns anos ensinando os alunos a estudar o código JavaScript de nível inferior gerado pelo prompt de inglês de nível superior?

Em que nível de abstração estão os agentes

Comecei a escrever código em 2002, usando REALBasic no Mac OS 9. Comecei a escrever código mais a sério em 2006, usando Java no Windows XP.

Sempre usei o que fui apresentado como “abstrações de nível superior”. Nunca perfurar cartões, ou montagem, ou mesmo C, na verdade. Mas não posso deixar de sentir que os agentes estão novamente em outro nível.

Em vez de escrever numa linguagem de programação, posso descrever a um agente, em linguagem simples, o que quero que aconteça. Isso era impensável há alguns anos. Mas é possível com agentes de codificação. Projete seu recurso de software em linguagem natural (com a ajuda do seu agente, é claro) e forneça esse requisito ao seu agente, e algo acontece nos bastidores em um nível inferior de abstração. Assim como os desenvolvedores que escreveram código assembly na década de 1980, esse nível mais baixo de abstração é onde fiz minha carreira até agora.

Um enigma

Eu odeio o fato de que todos esses LLMs são treinados em dados roubados.

Eu odeio quanta energia é usada para treinar esses modelos.

Eu odeio que hardware de computador como RAM esteja ficando muito mais caro porque está sendo comprado em massa para data centers para alimentar LLMs.

Moralmente, acho que esta é uma tecnologia terrível e não quero que ela faça parte da minha carreira, ou mesmo do mundo em geral, francamente.

E há outras razões para ser cético em relação aos LLMs. O modelo de negócios é uma grande questão para todas essas empresas. Eles não obtêm lucro, mesmo quando cobram das pessoas £200 por mês. Mas não consigo imaginar que isso seja outra coisa senão um problema de curto prazo, uma vez que as economias de escala e o progresso do tempo reduzem os custos.

Outro problema frequentemente levantado é: o que acontecerá com a próxima geração de desenvolvedores de software? Se ter um agente é como ter um desenvolvedor júnior, e você é o desenvolvedor sênior, de onde vêm os novos desenvolvedores seniores? Suspeito que a resposta seja: de onde vieram os novos desenvolvedores de assembly?

Depois, há a questão de quanto tempo é economizado usando LLMs. Há um ano, tentei pedir a Claude e ChatGPT (Claude Code e Codex ainda nem existiam) para escreverem código para mim e recebi um lixo absoluto de volta. Se eu confiasse nesses modelos mais antigos, em chatbots, claro, gastaria muito mais tempo corrigindo seus erros do que economizaria fazendo-os gerar código. Mas a versão do Codex que usei na semana passada pode escrever código funcional mais rápido do que eu. Claude Code não é Claude. Codex não é ChatGPT. Se você basear suas suposições em experimentos com o chatbot, que não consegue ver sua base de código, não consegue executar, depurar e corrigir o código que escreve, então você não tem um entendimento completo do que essas ferramentas podem fazer. Estas são agora ferramentas muito poderosas. Não são inteligências, e evitei usar o termo “inteligência artificial” propositalmente. Mas ferramentas para desenvolvimento de software, sim. E suspeito que rapidamente se tornarão ferramentas muito importantes.

E agora?

Estou enormemente em conflito sobre o uso de LLMs. Tenho vários problemas que não consigo conciliar. Também não quero depender de outra grande empresa americana de tecnologia.

Mas não tenho mais certeza de onde minha carreira escolhida está indo.


Se você gostou deste artigo, considere me comprar um café para apoiar minha escrita.



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *