O compilador também devia acabar com a programação

As alegações de que agentes de codificação por IA vão “acabar com a programação” estão sendo confrontadas com promessas anteriores de que compiladores, COBOL, SQL e ferramentas visuais permitiriam que não especialistas substituíssem engenheiros de software — promessas que em grande parte remodelaram o trabalho, em vez de eliminá-lo. Os comentadores contrastam compiladores determinísticos com LLMs probabilísticos, argumentando que prompts em linguagem natural não oferecem os contratos precisos necessários para automatizar totalmente o design, a arquitetura e a depuração de software, mesmo que acelerem muito a codificação rotineira. Muitos esperam que a programação e outros empregos de escritório encolham e se movam para a escrita de especificações, a gestão de agentes e o pensamento de produto em nível mais alto, enquanto outros duvidam que os LLMs consigam algum dia captar de forma confiável requisitos do mundo real suficientemente confusos para tirar os humanos do circuito.

Contexto histórico e ondas anteriores de “fim da programação”

  • Comentadores lembram COBOL, SQL, BASIC, 4GLs, ferramentas visuais e RAD/low-code como tentativas anteriores de permitir que “pessoas comuns” programassem, nenhuma das quais eliminou os programadores.
  • Esclarecimentos de que “codificação automática” no início significava substituir o código de máquina escrito à mão, não acabar com a programação em si; compiladores já foram chamados de “automatic coders”.
  • Alguns argumentam que as previsões estavam parcialmente certas: compiladores eliminaram camadas inteiras de trabalho manual e criaram programação mais ampla e de nível mais alto.

LLMs são comparáveis a compiladores?

  • Um lado: codificação assistida por LLM é apenas outra camada de abstração, semelhante à passagem de assembly para Fortran; a “fonte da verdade” pode mudar para specs/testes.
  • Visão oposta: má analogia; compiladores implementam mapeamentos precisos e determinísticos com contratos bem definidos, enquanto LLMs são estocásticos, imprecisos e sempre retornam alguma saída.
  • Debate sobre determinismo: compiladores modernos são complexos e usam heurísticas, mas ainda precisam preservar a semântica do programa; LLMs não oferecem essa garantia.

Specs, linguagem natural e ambiguidade

  • Vários argumentam que a linguagem natural é inerentemente ambígua; tentar remover a ambiguidade acaba recriando código ou specs formais.
  • Outros contrapõem que muitos fluxos de trabalho de negócios já usam regras em linguagem natural ou algo parecido em ferramentas e fluxos de trabalho agentivos.

Qualidade e papel do código gerado por LLMs

  • Alguns relatam que quase não “programam” mais; LLMs geram a maior parte do código, com humanos focando em direção e revisão.
  • Outros dizem que LLMs superengenheiram, cometem erros tolos e produzem sistemas bagunçados e difíceis de manter sem restrições cuidadosas.
  • Há divergência sobre se os melhores modelos já superam a maioria dos desenvolvedores; alguns veem essa afirmação como exagerada ou dependente do contexto.

Empregos, economia e fluxos de trabalho futuros

  • Forte preocupação de que a IA reduzirá significativamente a demanda por programadores e outros trabalhadores de escritório; comparações com cavalos sendo substituídos por carros.
  • Contra-argumentos: software nunca fica “pronto”, humanos ainda precisam definir produtos, lidar com a realidade em mudança e resolver requisitos pouco especificados.
  • Alguns preveem fluxos de trabalho nos anos 2030 em que agentes farão a maior parte da codificação, dos testes e das operações, com humanos especificando comportamento, arbitrando casos de borda e lidando com “política de escritório”.
  • Outros veem o entusiasmo atual como parte de um ciclo recorrente; as ferramentas mudam, mas os debates sobre “como o software deve ser construído” persistem.