A carregar agora

Escrevo logo programo

Escrevo logo programo

Para todos os efeitos práticos, o suporte da actividade da informática é a programação e a programação é texto (código, especificação, documentação são texto), precisamente onde os LLMs vieram revolucionar a IA e onde têm progredido de forma consistente.
É hoje uma evidência que a IA ajuda a escrever código, a detectar erros, a propor correcções, a documentar soluções e até a converter rotinas escritas em linguagens obsoletas para linguagens ou estruturas mais actuais. Um programador que antes gastava uma manhã a construir testes unitários, a rever funções repetidas ou a escrever documentação técnica pode agora concentrar-se em validar a lógica, confirmar excepções e rever os riscos.
O título anterior (“Empresa de mil milhões” com um só empregado…) tinha muito a ver com esta percepção de que se pode produzir software quase exclusivamente através de prompting sobre modelos com autonomia crescente (“vibe coding”) [Delaney 2025]. A ideia é sedutora: descrever o que se quer em linguagem natural e deixar o modelo tratar do resto. Para protótipos rápidos e aplicações simples, funciona de facto surpreendentemente bem.
As consequências desta mudança já se fazem sentir nas universidades, onde o modelo de avaliação baseado em pequenos programas (ou mesmo complexos) entrou em colapso: a IA é capaz de produzi-los com resultados óptimos, tornando-os impossíveis de avaliar como prova de competência.
A actividade profissional de programação tenderá a aproximar-se cada vez mais da escrita, em particular da escrita técnica, e o seu ensino também… O que conta é a capacidade de formular com precisão, de escolher a abstracção certa, de dar coerência a um argumento que o modelo depois executa.
Claro que o vibe coding apresenta limitações sérias. Em primeiro lugar, a falta de compreensão profunda do código gerado torna difícil depurar erros subtis, optimizar o desempenho ou garantir a segurança. O modelo pode produzir código plausível, mas incorrecto, que pode passar despercebido. A acumulação de decisões técnicas tomadas pelo modelo sem supervisão adequada irá criar uma incremental “dívida técnica”. Por fim, em contextos que exigem fiabilidade, conformidade regulatória ou rastreabilidade dos requisitos, delegar a escrita de código a um modelo sem revisão rigorosa não é profissionalmente aceitável.
Tal como na literatura, com ferramentas de IA haverá bons e maus programas. E o que os distinguirá não é o modelo usado, mas quem o usa. Na programação, essa distinção traduz-se num conjunto de competências que já são referidas em muitos textos que abordam o ensino na era da IA e que deveriam fazer parte da bagagem dos profissionais da área ou dos futuros engenheiros informáticos:
– Engenharia de prompts e de contexto. Saber estruturar o contexto que se passa ao modelo (documentação relevante, exemplos, restrições, histórico de decisões), de forma a obter respostas úteis e previsíveis. Um bom prompt não é uma especificação parcial do problema. À medida que os sistemas de IA se tornam mais autónomos e encadeados, esta competência aproxima-se cada vez mais de uma forma de arquitectura de software.
– Análise crítica dos resultados, em particular a identificação de alucinações, erros e enviesamentos. Um modelo pode gerar código sintacticamente correcto que falha em casos extremos, respeita a interface, mas viola a lógica de negócio. Esta é provavelmente a competência mais difícil de ensinar.
– Literacia sobre o funcionamento dos modelos, suficiente para formar um juízo fundamentado sobre quando confiar e onde duvidar. Não é obviamente o detalhe matemático dos LLMs, mas compreender o suficiente sobre como os modelos são treinados, que tipos de erros cometem com mais frequência, quais as tarefas em que são robustos e as situações onde tendem a inventar. Esta literacia é o que permitirá usar a IA como ferramenta em vez de a tratar como um deus ex machina.
– Verificação, teste e validação. O problema não é novo, mas agora tem uma nova dimensão: quando o código é gerado, os testes têm de ser construídos de forma independente e com maior rigor porque não se pode assumir que o modelo compreendeu cabalmente as intenções da especificação. A IA pode ajudar a gerar testes, mas a definição do que testar e a avaliação de se o que foi testado é suficiente continua a ser uma responsabilidade humana.
– Segurança, há evidência empírica robusta de que o código gerado por assistentes de IA contém com frequência vulnerabilidades significativas. Um estudo mostrou que participantes que usaram assistentes de IA produziram código com mais falhas de segurança do que os que não os usaram e, significativamente, mostraram-se mais confiantes na correcção do resultado. Este padrão é particularmente preocupante: a IA tende a gerar código que parece completo e robusto, o que pode reduzir a vigilância. Todos prometem que o human in the loop é a solução, mas perante a excelência do resultado os humanos tornam-se naturalmente complacentes.
A IA como amplificador das capacidades dos programadores é uma evidência. O risco de acreditar que aprendizes de feiticeiro se tornam excelentes programadores sem nenhuma bagagem técnica também é real. Toda a indústria e, claro, as universidades vão ter de se adaptar a esta profunda mudança de paradigma.

Share this content:

Publicar comentário