O Fim da Programação

As alegações de que agentes de codificação com IA anunciam “o fim da programação” estão a gerar tanto entusiasmo quanto ceticismo. Comentadores apontam exemplos em grande escala, como uma reescrita assistida por IA do runtime Bun JavaScript, como prova de que os modelos agora conseguem gerar e refatorar bases de código enormes, mas argumentam que isso ainda depende de testes, arquiteturas e decisões de produto criados por humanos. Muitos esperam que a natureza do trabalho de software mude para especificação, verificação e compreensão de sistemas em vez de codificação linha a linha, ao mesmo tempo que alertam que a dependência excessiva da IA pode corroer a expertise, degradar a qualidade do software e alterar profundamente os mercados de trabalho dos programadores.

Reação geral ao “fim da programação”

  • Muitos veem o título como exagerado ou caça-cliques; outros dizem que ele descreve com precisão uma mudança real na forma como o código é produzido.
  • Fazem-se paralelos históricos (por exemplo, o FORTRAN “acabando com a codificação”); o consenso é que a “programação” muda de forma em vez de desaparecer.
  • Vários argumentam que isto tem mais a ver com o fim da codificação manual como padrão do que com o fim da engenharia de software.

Reescrita de Bun Zig→Rust como evidência

  • Os apoiantes veem a reescrita de Bun como uma prova marcante de que agentes conseguem gerar e refinar iterativamente bases de código grandes e complexas quando há um oráculo forte (testes, implementação de referência).
  • Os críticos contra-argumentam que:
    • A tradução com uma suíte completa de testes é um melhor cenário possível, não representativo de projetos típicos.
    • O código Rust resultante terá, segundo relatos, incluído problemas sérios de soundness e de qualidade.
    • Grande parte do benefício pode vir de refatorações gerais, e não apenas da mudança de linguagem ou da própria IA.
  • Vários observam que devemos assumir que houve mais revisão humana e engenharia do que o marketing sugere.

Qualidade do código, arquitetura e manutenção

  • Há relatos recorrentes de saída de LLMs como “slop”: com bugs, excessivamente confiantes, fracas em refatoração e ruins em arquitetura, a menos que sejam orientadas de forma apertada.
  • As pessoas veem os LLMs a destacar-se em boilerplate, tradução e pequenas ferramentas, mas a lutarem à medida que os sistemas se tornam mais complexos ou antigos.
  • Há uma preocupação forte de que a dependência de IA desgaste a expertise humana, levando a decisões arquiteturais pobres e a “dívida cognitiva”.
  • Testes e verificação são vistos como críticos; alguns acreditam que o código se tornará descartável, regenerado a partir de specs/testes, enquanto outros temem regressões intermináveis sem cobertura quase perfeita.

Papel em mudança dos programadores

  • Muitos esperam uma mudança da codificação linha a linha para:
    • Definir specs precisas, restrições e harnesses de verificação.
    • Arquitetura de sistemas, trade-offs e decisões de produto.
    • Rever, depurar e manter código gerado por IA.
  • Alguns acham que isto favorecerá engenheiros altamente qualificados e afastará devs “só aqui pelo dinheiro”; outros temem o oposto — perda de técnica e paixão, substituídas por manipulação de prompts.

Impactos económicos e laborais

  • As previsões variam entre:
    • Equipas onshore mais pequenas + grandes orçamentos de tokens a substituir grandes grupos de engenharia ou outsourcing.
    • Pressão deflacionista significativa sobre salários de colarinho branco a nível global.
  • Alguns preveem que competências de software se tornem o mínimo exigido para funções de produto, reduzindo o número de “software engineers” dedicados.
  • Há ansiedade quanto à prontidão social: fala-se de UBI ou mesmo de “universal high income”, além de receio de que os sistemas políticos atuais não respondam de forma adequada.

Trajetória a longo prazo e questões em aberto

  • Vários enquadram isto como a ascensão da metaprogramação / desenvolvimento declarativo ou baseado em intenção, não como extinção.
  • Outros argumentam que sistemas totalmente agênticos a decidir reescritas e direção de produto seriam inseguros ou economicamente desalinhados.
  • Não está claro se os futuros modelos conseguirão realmente lidar com contexto de produto, político e organizacional de alto nível, e não apenas com código.