Em seu artigo AKITA Fábio. AI Agents - Qual seria a melhor Linguagem de Programação para LLMs? (2016), é apresentado um modelo hipotético que tem como base uma “especificação humana de intenção”. E nas palavras de Akita
Isso não é linguagem natural livre (ambígua demais) nem uma linguagem de programação (detalhada demais). É algo intermediário: uma DSL de especificação onde o vocabulário é restrito, a estrutura é formal, mas a cognição exigida é de design de produto, não de engenharia de software.
Não sei se é certo que a linguagem natural livre seja ambígua demais, mas estou certo que uma linguagem de programação, por mais alto nível que seja, ainda é detalhada demais, mas para mim, o principal erro se consiste na afirmação de que “a cognição exigida é de design de produto, não de engenharia de software”.
A própria especificação é produzida sobre a base de inúmeros conceitos de ciência da computação como: Imutabilidade, Protocolo de Transferência de Hipertexto (HTTP), Latência de Rede, Serialização JSON, Testes Unitários, Arvore de Dependência e etc.
Não imagino que o artigo de Akita tenha a pretenção de dizer que as cognições em engenharia de softwares se tornarão obsoletas com o passar dos anos, mas acho que é importante essa reflexão de que, um bom engenheiro de software conseguirá produzir melhores especificações (portanto, com as mais corretas intenções), porquê para isso é necessário uma habilidade técnica que pertence ao universo da ciência da computação / engenharia de software.
O desenvolvimento orientado a especificações tem ganhado cada vez mais espaço na produção de sofware, entretanto, não enxergo que o que esteja acontecendo seja uma mudança de cognições, mas sim, uma mudança na forma de escrever software, uma mudança no meio entre a implementação e a intenção.