O "Fim da Programação" vai parecer muito com programação (2023)

Afirmações de que a IA trará um iminente “fim da programação” recebem reações mistas, com muitos engenheiros argumentando que os modelos de linguagem atuais são assistentes poderosos, mas ainda estão longe de substituir desenvolvedores humanos. Os comentaristas apontam desafios persistentes em requisitos अस्पष्ट, manutenção, responsabilidade, segurança e casos extremos do mundo real, comparando o hype de hoje com ondas passadas de UML, ferramentas no-code e desenvolvimento offshore que prometeram eliminar programadores, mas acabaram apenas mudando a forma como trabalham. O consenso emergente é que a IA lidará cada vez mais com boilerplate e codificação rotineira, enquanto os humanos se concentrarão mais em especificação, testes, arquitetura e supervisão, em vez de desaparecerem do processo.

Escopo do “Fim da Programação”

  • Muitos argumentam que “sem programação” significaria que IAs lidariam independentemente com tarefas de ponta a ponta (emails, APIs, contratar outras IAs, etc.), com usuários fazendo pedidos em linguagem natural como “mostre meus melhores clientes”, sem código explícito nem interfaces.
  • Outros acham que o “fim” apenas desloca a programação para uma linguagem meio natural, meio formal, ou para a especificação de regras, testes e requisitos em vez de escrever funções.

Realidade Atual e de Curto Prazo

  • Hoje, os LLMs são vistos como:
    • Autocomplete forte para linguagens verbosas.
    • Q&A mais rápido do que pesquisar/Stack Overflow.
    • Bons para boilerplate, one-liners e testes iniciais, mas não para sistemas complexos ou inéditos.
  • Vários relatam sucesso com agentes que conseguem ler/escrever arquivos, iterar e corrigir bugs simples (por exemplo, pequenos jogos), mas esses ainda enfrentam dificuldades com codebases desconhecidas ou complexas.

Os Programadores Serão Substituídos?

  • Visão cética:
    • A dificuldade da programação está em entender requisitos, trade-offs e desejos humanos, não a sintaxe.
    • A história de ferramentas CASE, UML, 4GLs, no-code/low-code: elas deslocaram o trabalho em vez de eliminar programadores.
    • LLMs enfrentam incompatibilidades entre “realidade e texto” (por exemplo, bugs de hardware, restrições do mundo real), então a supervisão humana é vista como permanente.
  • Visão mais otimista:
    • À medida que os modelos melhorarem, eles darão conta tanto de codificação quanto de manutenção; os humanos podem, principalmente, especificar comportamento e escrever testes.
    • Desenvolvedores podem evoluir para arquitetos, tech leads ou “programadores de prompt” gerenciando frotas de agentes de IA.

Responsabilidade, Testes e Especificações

  • Forte ênfase de que a IA não pode ser legalmente responsável; as organizações ainda precisarão de humanos para assumir os resultados.
  • Muitos preveem que programadores se tornarão testadores/escritores de especificações: testes e propriedades codificam a verdadeira lógica de negócio, enquanto a IA gera implementações.
  • Escrever bons requisitos é destacado como algo pelo menos tão difícil quanto codificar; especificações em inglês simples ainda precisarão de precisão.

Preocupações Econômicas e Organizacionais

  • As empresas pressionarão a IA para cortar custos, mesmo quando a qualidade sofrer, como já se vê com outsourcing e alguns fluxos de trabalho assistidos por IA.
  • Os temores giram menos em torno da substituição total e mais em torno de:
    • Redução de pessoal e pressão sobre desenvolvedores mais fracos.
    • Micromanagement e pontuação automatizada de desempenho impulsionados por IA.
    • Ambientes híbridos em que humanos precisam manter sistemas emaranhados gerados por IA, com pouco controle sobre o design subjacente.