O que um livro de linguagem C de 1995 nos ensina sobre IA
"C Completo e Total". Esse livro foi uma verdadeira "bíblia" da linguagem C durante os anos 1990 e 2000. Era o livro referência de cabeceira de qualquer programador da época, em dias que não haviam documentações de linguagens disponíveis na internet.
Mas, se você abrir o capítulo que este livro dedica a inteligência artificial, terá um choque.
Obviamente, o assunto não será os desdobramentos dos prompts tipo ChatGPT. Mas a discussão, também, não será do tipo "qual é a melhor lib, o melhor pacote para trazer a sua solução de IA em 5 linhas de código".
A discussão aqui é mais embaixo.
Se nas linguagens mais populares de hoje, queremos saber qual é o pacote que vai "fazer a mágica", em C, a discussão é "como faremos a mágica?".
Afinal, quando você implementa um código em C, você descobre que mágica não existe. O que existe é computação. E quando o assunto é "computação", as perguntas mundanas começam a surgir: "quanto tempo vai levar?", "quanta memória vai ocupar" e "quanto vai custar?".
O livro em questão propõe um simples problema para discutir o assunto: como encontrar a menor distância entre dois pontos em um grafo, ou traduzindo: "como encontrar a melhor rota entre dois pontos no Waze nosso de cada dia".
A discussão nos mostra que não existem soluções perfeitas. O que existe é o tradeoff entre eficiência e eficácia: vale a pena dobrar o custo computacional para alcançar a solução 100% quando você pode entregar a solução 99% pela "metade do preço"?
Às vezes sim, às vezes, não. Cada caso é um caso, não é mesmo? Você não estaria disposto a esperar cinco minutos olhando para a tela do Waze, esperando o app trazer uma rota 3 minutos mais rápida até sua casa. Mas, se o assunto é a análise de dados para o medicamento que vai curar a AIDS, o assunto muda, nao é verdade?
Não tô sendo saudosista. Bem sabemos que em um ambiente de produtividade, não temos que ficar reinventando a roda. É bem melhor consumir uma solução exaustivamente testada e aprovada. E é isso que os pacotes e libs das linguagens como JS, Python e Java nos trazem.
Mas é interessante revisitar esses conceitos e lembrarmos que em programação, o que chamamos de "milagre", a linguagem C chama de "computação".
Não a toa, a quase sessentona segue firme em todos os índices de popularidade entre devs. E é por essas e outras que C é pop! Criada na mesma época de Andy Wahrol, mas por outro artista da época: Dennis Ritchie!