- Ao longo de décadas, as previsões repetidas do “fim dos programadores” erraram todas as vezes, e o avanço tecnológico acabou levando, na prática, ao aumento de desenvolvedores e programas
- Surgiram várias tecnologias de automação, como WYSIWYG, 4GL, No-Code e LLM, mas, na realidade, elas não conseguiram reduzir a necessidade de desenvolvedores
- Ferramentas baseadas em LLM têm confiabilidade e manutenibilidade inferiores às tecnologias do passado e, na maioria das equipes, acabam causando queda de produtividade e piora da qualidade
- A dificuldade essencial da programação não está em escrever código, mas na capacidade de transformar o pensamento humano ambíguo em lógica, e isso ainda pertence ao domínio humano
- Portanto, é improvável que a IA substitua os desenvolvedores e, ao contrário, a demanda por desenvolvedores experientes tende a crescer
O ciclo recorrente do “fim dos programadores”
- Nos últimos 43 anos, várias tecnologias como Visual Basic, Delphi, Executable UML, No-Code e Low-Code vêm sendo apontadas como capazes de eliminar a necessidade de programadores
- Nas décadas de 1970 e 1980, eram 4GL e 5GL; antes disso, Fortran e COBOL; e, voltando ainda mais no tempo, até mesmo o compilador A-0 recebeu a mesma previsão
- O computador eletrônico inicial COLOSSUS era programado por meio de cabeamento físico, e gerações posteriores chegaram a ser zombadas como “não são programadores de verdade”
- No entanto, o resultado foi que o número de programadores não diminuiu, mas aumentou, sendo citado como um caso representativo do Paradoxo de Jevons
A diferença entre LLM e tecnologias do passado
- As tecnologias do passado realmente aumentaram a velocidade de produção de software e também garantiram confiabilidade, mas os LLMs mostram o efeito oposto na maioria das equipes
- Os LLMs reduzem a qualidade do código e dificultam a manutenção, criando uma situação de “LOSE-LOSE”
- Mesmo com o mesmo prompt, não conseguem produzir sempre o mesmo resultado, e o código gerado exige validação e correção por desenvolvedores humanos
- Não há evidências de que a IA esteja substituindo desenvolvedores; as recentes reduções de pessoal se devem a fatores econômicos como contratações excessivas na pandemia, alta dos juros e concentração de investimentos em datacenters
O desafio essencial da programação
- O núcleo da programação é o processo de converter o pensamento humano ambíguo em raciocínio computacional logicamente preciso
- Essa dificuldade não mudou desde a era dos cartões perfurados até COBOL, Visual Basic e Python
- Como a linguagem natural é inerentemente ambígua e imprecisa, cita-se a previsão de Dijkstra de que não chegará uma era em que se programe em inglês ou francês
- É possível aprender essa forma de pensar, mas nem todo mundo gosta dela nem consegue fazê-la bem, e a oferta de profissionais qualificados é sempre insuficiente
Os limites da IA e a sustentabilidade
- A AGI (inteligência artificial geral) ainda está distante e exige capacidades de compreensão, raciocínio e aprendizado em nível humano
- LLMs de grande escala estão gerando custos e prejuízos enormes, o que os torna insustentáveis no longo prazo
- Com o passar do tempo, sua utilidade pode cair devido às restrições da linguagem e das versões de bibliotecas com as quais o modelo foi treinado
- Por esses motivos, os LLMs ultragrandes podem acabar sendo um experimento antieconômico, como o programa lunar Apollo
Perspectivas para o ambiente de desenvolvimento futuro
- No futuro próximo, o desenvolvimento de software deve assumir a forma de ferramentas auxiliares baseadas em modelos de linguagem menores, desempenhando papel de apoio em tarefas como geração de protótipos ou autocompletar código
- No entanto, decisões importantes e a garantia de qualidade continuarão sendo lideradas por desenvolvedores humanos e, de acordo com a lei de Jevons, a demanda por desenvolvedores pode até aumentar
- As empresas devem investir desde já na contratação e formação de desenvolvedores experientes, pois essa é uma estratégia central para aumentar produtividade e confiabilidade, com ou sem IA
1 comentários
Opiniões do Hacker News
Depois de vários anos lidando com agent-LLM, concluí que, para programação real, não serviu para absolutamente nada
Não consegue resolver problemas complexos de bibliotecas de baixo nível nem bugs não intuitivos, e não entende a lógica de camadas mais abstratas
Por outro lado, foi excelente em tarefas boilerplate já repetidas milhares de vezes, como montar sites simples. Nesses casos, economizou um dia de trabalho
Mas não vejo sinais de que o LLM vá além dessas tarefas simples e passe a compreender problemas complexos
Programação não é só codificação de baixo nível ou corrigir bugs legados. Construir sites com ajuda de LLM também é, sem dúvida, uma forma de programar
Economizei um enorme tempo para entender codebases grandes, fazer brainstorming de funcionalidades e identificar lacunas na implementação
Não substitui totalmente, mas seu valor como ferramenta poderosa para engenheiros é evidente
Mas a maioria dos desenvolvedores trabalha combinando frameworks e bibliotecas.
Assim como carros elétricos não servem tão bem para transporte pesado, mas são úteis o bastante para motoristas comuns, os LLMs ocupam esse mesmo lugar
Até alguns meses atrás eu concordaria, mas agora parece que a tecnologia já ultrapassou essa fronteira
Trabalho com ERP, e os agentes aumentam drasticamente minha produtividade
Tem tanto valor que eu continuaria usando mesmo se a assinatura subisse para 500 dólares por mês
Tenho medo de que a previsão de que a AI reduzirá a necessidade de programadores se torne realidade
Já sinto que a AI é melhor do que eu em design, code review, detecção de bugs e planejamento de projetos
Parece que meu papel é apenas o de um maestro conduzindo o processo
Às vezes assusta a sensação de estar fazendo sozinho o trabalho que antes era de 20 pessoas
Só os humanos são realmente bons em planejamento de longo prazo e tomada de decisão. Temos preocupação, orgulho e emoções, e isso é nossa verdadeira força
A AI é apenas um saco de palavras; não tem amor nem constância
Acho que qualquer humano com competências básicas ainda é muito melhor
Se uma pessoa está fazendo o trabalho de 20, então talvez essas 20 já fossem pouco produtivas
O essencial era manter a lava-louças sempre rodando, e os agentes de código com AI são como essa máquina
Eu coloco os prompts, reviso o resultado e organizo tudo. No fim, a mão humana continua sendo necessária
Se graças à AI uma pessoa faz o trabalho de 20, isso é ganho de produtividade e gera mais riqueza
Acho que a febre atual por LLM é um grande efeito Eliza
Conceitos relacionados podem ser vistos em ELIZA effect e no livro de Weizenbaum Computer Power and Human Reason
Os LLMs parecem ter evoluído para impressionar pessoas influentes (CEOs, investidores)
Não precisam atingir nível de especialista de verdade; basta parecer “bom o suficiente” para serem adotados
A verdadeira ameaça para desenvolvedores nos EUA não é a AI, mas a terceirização
Sou imigrante e trabalho em uma empresa financeira em Nova York. 95% dos funcionários são estrangeiros, e a maioria das novas contratações também é de portadores de visto H1B
Como Dijkstra já dizia há 50 anos, programar em linguagem humana é impossível
Isso porque a linguagem natural é essencialmente ambígua e imprecisa
Quem diz que “prompt é o novo código-fonte” é como quem faz aplicativos no Excel
Li o livro “Blood in the Machine” e conheci a história do movimento ludita
Antes da Revolução Industrial, roupas eram feitas em família, mas com a chegada das máquinas a indústria artesanal entrou em colapso
Parece que os desenvolvedores agora estão seguindo o mesmo caminho
Mas, no desenvolvimento de software, escrever código é só uma parte do processo inteiro
Assim como a Toyota substituiu artesãos, se os LLMs automatizarem até a manutenção, os desenvolvedores terão o mesmo destino
Mesmo com excesso de roupas baratas, designers e marcas de luxo continuam aí. O software deve mudar da mesma forma
No passado, diziam que ferramentas WYSIWYG como Visual Basic e Delphi substituiriam programadores, mas isso não aconteceu
Com a AI é parecido. Ela pode gerar código frágil e instável, mas ainda precisa de programadores de verdade para estabilizá-lo
Nos anos 1980, governos e empresas investiram pesado em 4GL, mas no fim isso fracassou
O MITI Fourth Generation Project do Japão foi semelhante. A “crise do software” daquela época lembra bastante a atual febre da AI
Este texto parece um artigo de exaltação à AI. A parte final, promovendo um serviço educacional, reforçou ainda mais essa impressão
Ainda assim, é verdade que minha produtividade aumentou na prática, então a queda na demanda por desenvolvedores parece inevitável
Na verdade, pareceu mais um texto escrito por LLM, montado a partir de várias opiniões costuradas
Se o custo de desenvolvimento cair pela metade, mais áreas vão passar a usar software
Veja Jevons paradox
Assim como no modelo do queijo suíço usado em segurança aérea, o LLM pode ser visto como uma camada no desenvolvimento de software
Mesmo que cada camada não seja perfeita, elas compensam as falhas umas das outras e elevam a qualidade geral
Ainda não chegamos ao ponto de aplicá-los de forma inteligente na verificação de código ou na análise de testes
Mas tenho certeza de que um caso de uso realmente adequado vai surgir algum dia
Para garantir segurança, no fim alguém precisa revisar tudo manualmente
A confiabilidade do software aeronáutico e a instabilidade dos LLMs são coisas impossíveis até de comparar