Log in

Programação Orientada por Inteligência Artificial

José Estêvão de Melo

O título escolhido para este artigo, para os mais ligados ao meio, é um paralelo imediato com a Programação Orientada a Objetos, mas para a grande maioria dos leitores, tem o efeito pretendido de anunciar uma crescente vaga, em que a programação é realizada não por programadores, mas por software de inteligência artificial (IA) como o GitHub Copilot, Cursor ou, o famigerado, ChatGPT.

Para contextualizar o leitor, o desenvolvimento de aplicações informáticas é feito através de linguagens de programação, que ao contrário das linguagens naturais que usamos para comunicar uns com os outros, são extremamente rígidas, dependendo de uma estruturação inflexível quer ao nível da sua sintaxe, quer ao nível da ordem de especificação das instruções, não havendo lugar a interpretações múltiplas. A mesma frase em linguagem natural (como o português) pode dar origem a dois resultados distintos dependendo de quem a ouve, já numa linguagem de programação o resultado será sempre o mesmo.

Esta rigidez associada a todas as complexidades informáticas de gestão de memória, complexidade algorítmica, e outros pormenores dos sistemas informáticos com os quais não desejo sobrecarregar o leitor, fazem com que a programação seja de difícil acesso àqueles que não tem formação na área.

O rápido crescimento das ferramentas de IA, tem colocado em foco o termo Vibe Coding. Coding refere-se a codificação, considerando as regras das linguagens de programação, parece-se mais com codificar, talvez por ser impercetível a quem não é da área (e às vezes também para quem é). Já o termo Vibe está mais associado a um estado de espírito do que a algo tão rígido como as linguagens de programação. O paradoxo destes dois termos é apenas possível pela introdução de IA, nomeadamente dos LLM (Large Language Models) que, sem entrar em detalhe, são algoritmos alimentados com enormíssimos volumes de dados em linguagem natural e, com recurso mecanismos de aprendizagem são capazes de a interpretar. Com estas ferramentas passa a ser possível especificar em linguagem natural a aplicação que se pretende desenvolver, ficando a cargo da IA toda a codificação e a rigidez a ela inerente. Tudo o que parece bom demais para ser verdade, normalmente é, podendo ter origem numa compreensão incompleta da tecnologia, ou aproveitamento mal-intencionado da mesma.

A programação é um processo desafiante, complexo e acima de tudo extremamente gratificante. Quem programa, conhece a sensação de resolver um problema após uma noite em claro, e a satisfação de compreender um assunto de tal forma que o conseguimos decompor instrução a instrução, de fio a pavio. Mas também a sensação de querer transformar o teclado em reciclagem.

A utilização de IA não elimina o bom nem o mau, bem utilizada permite reduzir as tarefas mais repetitivas, mas mal utilizada é uma fonte de problemas futuros com custos potencialmente muito maiores. A IA é excecionalmente boa a resolver problemas bem definidos, mas em grandes aplicações, um pequeno erro pode ser catastrófico em partes aparentemente não relacionadas, cuja correção implica períodos de indisponibilidade, trabalho a corrigir dados que nunca deviam ter ficado mal causando elevados custos operacionais e até legais.

A programação é um processo formal, por vezes frustrante, mas extremamente criativo, e é este último aspeto que não devemos, nem podemos, delegar em ferramentas de IA, porque simplesmente não a possuem. A utilização destas ferramentas na minha atividade profissional aumenta a produtividade, mas apenas ao reduzir tarefas que, apesar de necessárias, são morosas e sem acrescento de valor. A IA ainda não têm a capacidade de contextualização necessária para produzir aplicações interligadas, estáveis, escaláveis e de fácil manutenção.

Pessoalmente, considero um risco a utilização de IA por profissionais com pouca experiência e sem capacidade de avaliar todos os impactos das soluções propostas. Ao fazê-lo, e à semelhança de um atleta, estão a saltar o aquecimento que lhes permite realizar a prova em segurança, ficando sem a capacidade de reagir e resolver os problemas, pelo menos em tempo útil, que inexoravelmente irão acontecer! Boa programação!

avatar-custom

José Estêvão de MeloEngenheiro Informático

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

CAPTCHA ImageCambiar Imagen