Hoje parece uma verdade da natureza que computadores sejam máquinas destinadas a executar programas: compra-se um hardware, instalam-se softwares e a mesma máquina vira editor de texto, videogame, servidor ou simulador molecular. Nem sempre foi assim. O ENIAC, um dos primeiros computadores eletrônicos programáveis de propósito geral, era operado pela conexão de cabos e pelo posicionamento de chaves em imensos painéis; alterar o programa exigia mudar a configuração física da máquina, processo que consumia dias. O algoritmo não era executado pelo hardware — estava materializado em sua topologia. Programar era fazer a eletricidade tomar os caminhos certos, quase um debugging com alicate. Um ensaio publicado pelo Canaltech reconstrói o caminho daquele painel ao prompt em linguagem natural. As informações são do Canaltech.
A ruptura conceitual veio antes de qualquer computador: em 1936, Alan Turing demonstrou que era possível conceber uma única máquina capaz de simular qualquer outra, desde que recebesse os dados e uma descrição da máquina a simular. A função deixava de ser determinada pela construção física e passava a ser especificada por símbolos.
Turing: a máquina universal
Embora hoje pareça óbvio, foi revolução: uma máquina universal significava não precisar construir um equipamento para trajetórias balísticas, outro para contabilidade e um terceiro para xadrez. Bastava uma máquina suficientemente geral, instruída por um programa sobre qual papel assumir. A intuição matemática virou engenharia nos anos 1940 com a arquitetura de programa armazenado, consagrada como arquitetura de von Neumann: instruções e dados passaram a habitar a mesma memória, representados da mesma maneira. O programa tornou-se dado — e nasceu o software.
Para Adriano Jose Reis Martins, editor do portal, o ensaio acerta ao começar por Turing. "Toda a história da computação cabe numa frase de 1936: a função não está na máquina, está no símbolo. O ENIAC era a máquina antiga — a função nos cabos. Von Neumann colocou o símbolo na memória. Oitenta anos depois, o LLM coloca o símbolo na frase em português. É a mesma ideia, cada vez mais abstrata: separar o que a máquina é do que ela faz. Quem entende isso entende por que o ChatGPT não é mágica — é o passo seguinte de uma escada que Turing desenhou", avalia.
Camadas: de máquina a Python
Conversar diretamente com a máquina continuava desagradavelmente próximo de dialogar com a eletrônica, e surgiram camadas de abstração: linguagem de máquina, depois assembly, que substituiu números por nomes; em seguida FORTRAN, C e outras, que permitiram falar em variáveis, loops, funções e estruturas de dados em vez de registradores e endereços. Mais tarde, linguagens ainda mais abstratas, com bibliotecas e frameworks em que milhões de instruções de máquina são disparadas por um comando tão inocente quanto "model.fit()". Cada camada esconde a inferior e oferece ao cérebro unidades conceituais maiores — perde-se controle local, ganha-se poder de composição.
A mesma família: especificar um procedimento
Apesar das diferenças, binário, assembly, C e Python pertencem à mesma família intelectual: em todos, programar é especificar simbolicamente um procedimento — uma receita de operações e regras de controle que a máquina executa. É a linhagem da máquina universal de Turing, o paradigma algorítmico-simbólico. Oitenta anos de evolução dentro de uma única ideia.
Conexionismo: a outra ideia
Quase em paralelo, surgiu ideia filosoficamente diferente. A partir dos anos 1940 e 1950, pesquisadores investigaram sistemas inspirados, de forma livre, na organização do cérebro: unidades simples conectadas, cujo comportamento global dependia da força das conexões. O perceptron de Rosenblatt foi uma das primeiras manifestações do que ficaria conhecido como conexionismo. A diferença era profunda: em vez de ditar à máquina como resolver um problema passo a passo, mostram-se exemplos do comportamento desejado e ajustam-se as conexões até o sistema aprender a reproduzi-lo.
Na leitura de Jaime Fernando Reis Martins, editor do portal, a bifurcação explica o presente. "Durante 70 anos houve duas tribos: os que escrevem a receita e os que mostram exemplos. A primeira dominou — todo software que você usa foi escrito por alguém. A segunda foi ridicularizada em 1969, ressuscitou em 1986 e venceu em 2012, quando a GPU e os dados fizeram a rede neural funcionar. O LLM é a segunda tribo devorando a primeira: o programa não é mais escrito, é encontrado. E quem o encontra é um otimizador que ninguém consegue ler. Isso muda o que significa 'saber programar' — e o Canaltech explica sem alarde", observa.
Inverno e ressurreição
A primeira onda terminou mal: as limitações dos perceptrons simples ficaram claras no fim dos anos 1960 e o entusiasmo evaporou. O conexionismo ressurgiu nos anos 1980 com métodos eficazes para treinar redes multicamadas por retropropagação; décadas depois, a abundância de dados, o poder das GPUs e as redes profundas transformaram a curiosidade acadêmica em infraestrutura industrial. É a história da IA moderna em três atos: promessa, inverno, explosão.
Software 1.0, 2.0 e 3.0
Em 2017, Andrej Karpathy — então na Tesla, ex-OpenAI — propôs chamar o software tradicional de "Software 1.0" e as redes neurais de "Software 2.0". No 1.0, o programador escreve linha por linha. No 2.0, ninguém escreve os milhões ou bilhões de parâmetros que determinam o comportamento da rede: especificam-se arquitetura, dados, objetivo e otimização, e o treinamento procura os parâmetros. É inversão fundamental — o código executável deixa de ser escrito e passa a ser encontrado; o conjunto de treinamento atua como especificação e o otimizador como compilador, ainda que produza programas que normalmente não conseguimos ler. Por fim, os Grandes Modelos de Linguagem inauguram o "Software 3.0": máquinas neurais de propósito geral que podem ser reprogramadas em tempo de uso, por linguagem natural.
Descrever o que se quer
Após oitenta anos construindo linguagens cada vez mais abstratas para dizer ao computador o que fazer, chega-se ao ponto em que se pode simplesmente descrever o que se quer. É o fechamento do arco: do cabo no ENIAC à frase no prompt. A máquina universal de Turing, que precisava de uma descrição simbólica da máquina a simular, agora aceita a descrição em português.
A pegadinha: português não é C
Há uma pegadinha — sempre há. O português ou o inglês não possuem a semântica precisa da linguagem C, e um prompt não é um algoritmo no sentido clássico. Como os LLMs são probabilísticos e aproximados, podem interpretar mal a intenção "com uma desenvoltura que faria um compilador tradicional corar". A abstração subiu de nível, mas suas garantias mudaram junto: o compilador de C ou faz exatamente o que se pediu ou dá erro; o LLM faz aproximadamente o que entendeu, sem avisar quando entendeu errado. É o preço da linguagem natural — ambiguidade — pago pela primeira vez pela máquina.
O que muda para quem programa
O ensaio não decreta o fim do programador; redefine a função. No Software 3.0, o trabalho migra de escrever o procedimento para especificar o resultado, verificar a saída e conhecer os limites do modelo — competências mais próximas de engenharia de requisitos e de teste do que de sintaxe. Quem domina as camadas inferiores continua necessário para quando o modelo erra, e ele erra. A escada de abstração não elimina os degraus de baixo; esconde-os até o dia em que é preciso descer.
Para Thiago Baptista Martins, editor do portal, o texto deveria ser leitura obrigatória em curso de computação. "A maioria dos alunos aprende Python sem saber por que existe Python. O Canaltech contou em dez parágrafos: Turing separou função de máquina, von Neumann guardou o programa na memória, cada linguagem escondeu uma camada, a rede neural trocou receita por exemplo, e o LLM trocou exemplo por frase. Quem entende essa linha não tem medo de IA — sabe onde ela está na escada e sabe que a escada continua. A pegadinha final é a lição: linguagem natural não tem garantia. Programar em 2026 é saber quando confiar e quando descer para o C", analisa.
O ensaio "De Chaves a LLMs: como a programação chegou à linguagem natural" foi publicado pelo Canaltech em 4 de setembro de 2026. A classificação Software 1.0/2.0/3.0 foi proposta por Andrej Karpathy em 2017 e ampliada em 2025.
Foto: Luke.schaaf (CC BY-SA 4.0) via Wikimedia Commons.