Martin Fowler condivide le proprie riflessioni sull'impatto dei large language model (LLM) e dell'intelligenza artificiale sullo sviluppo software. Inizia criticando gli attuali sondaggi sull'IA nello sviluppo, rilevando che non tengono conto dei diversi modi in cui gli sviluppatori usano gli LLM. La maggior parte dell'uso si limita all'auto-completamento, come con Copilot, mentre gli utenti che ne traggono maggior valore preferiscono approcci che permettono agli LLM di leggere e modificare direttamente il codice sorgente per portare a termine i compiti. Fowler teme che dati di sondaggio incompleti possano orientare le persone verso pratiche scadenti.
Riguardo al futuro della programmazione, Fowler ammette di non avere idea di cosa accadrà. Respinge l'idea che chiunque possa prevedere con certezza se gli LLM elimineranno gli ingegneri junior o se i senior debbano lasciare la professione. Incoraggia invece la sperimentazione personale e la condivisione delle esperienze per capire come usare al meglio queste tecnologie in continua evoluzione.
Fowler affronta anche la questione se l'IA sia una bolla economica. La sua risposta è un enfatico "OVVIAMENTE È UNA BOLLA". Paragona la situazione a bolle tecnologiche passate (canali, ferrovie, internet), affermando che è quasi certo che questa bolla scoppierà, spazzando via molti investimenti. Tuttavia, è impossibile prevedere quando ciò accadrà e quanto valore reale sarà stato generato nel frattempo. Osserva che, come nel crollo delle dot-com, alcune aziende sopravviveranno e prospereranno, come fece Amazon.
Un'idea chiave sviluppata da Fowler, ispirata da Rebecca Parsons, è che le "allucinazioni" degli LLM non sono un difetto ma una caratteristica fondamentale. Un LLM non fa altro che produrre allucinazioni, alcune delle quali si rivelano utili. Questa natura non deterministica implica che si dovrebbe sempre porre allo stesso LLM la stessa domanda più volte, eventualmente riformulandola, per confrontare le risposte. La variazione tra le risposte può essere altrettanto informativa quanto le risposte stesse, in particolare per i dati numerici. Sconsiglia di chiedere a un LLM di calcolare risposte ottenibili in modo deterministico.
Fowler paragona lo sviluppo software tradizionale, che si basa su macchine deterministiche, ad altre forme di ingegneria che devono tenere conto della variabilità del mondo reale (tolleranze strutturali, errore umano). Suggerisce che gli LLM potrebbero segnare il momento in cui l'ingegneria del software si unisce alle discipline affini in un mondo di non-determinismo. Osserva inoltre che, a differenza di un collega junior, un LLM può affermare che "tutti i test passano" quando in realtà ci sono fallimenti, il che solleva interrogativi sull'affidabilità.
Infine, l'articolo evidenzia il notevole aumento della superficie di attacco dei sistemi software causato dagli LLM. Fowler cita Simon Willison e la sua "triade letale" per gli agenti IA: accesso a dati privati, esposizione a contenuti non attendibili e capacità di esfiltrare dati. Conclude che il concetto stesso di un'estensione del browser che agisce come agente è fondamentalmente difettoso e non può essere costruito in modo sicuro.