Tuttavia, questa affermazione è controversa. Se consideriamo software complessi come sistemi operativi, motori di gioco o piattaforme SaaS, è improbabile che possano essere completamente rimpiazzati da sistemi IA. Inoltre, generare codice corretto a partire da una specifica non è un problema banale: la teoria della computazione dimostra che il program synthesis è computazionalmente complesso e richiede risorse considerevoli.
Programmare in Inglese?
L'idea che l'inglese possa diventare il linguaggio della programmazione non è nuova. Già negli anni '50 si pensava che FORTRAN avrebbe eliminato il bisogno di scrivere codice, ma ciò non è avvenuto. Oggi, alcuni sostengono che strumenti come ChatGPT rendano possibile programmare in linguaggio naturale, ma il problema rimane: le lingue naturali sono ambigue e richiedono una precisa "sintassi" per essere comprese correttamente dall'IA.
Difficoltà nella generazione di codice corretto
Il problema centrale della generazione di codice da una specifica è noto come program synthesis. Si tratta di trovare un programma che soddisfi determinati vincoli, ma dimostrazioni teoriche mostrano che il problema è computazionalmente difficile (PSPACE-completo), il che significa che richiede un numero di passaggi esponenziale rispetto alla dimensione dell'input. Pertanto, strumenti basati su LLM non possono garantire di produrre codice corretto in modo affidabile.
L'IA come strumento, non come sostituto
Sebbene i LLM possano essere utili per suggerire codice ed accelerare il lavoro dei programmatori, non rappresentano la fine della programmazione. Le limitazioni degli approcci basati sull'IA sono ben note e questi strumenti dovrebbero essere considerati complementari piuttosto che sostitutivi della programmazione tradizionale.
Il vero valore del linguaggio naturale nella programmazione risiede nel dialogo tra sviluppatori e utenti per comprendere i requisiti software. L'IA può facilitare questa interazione, ma il problema della correttezza del codice rimane centrale e irrisolto.
Questo articolo è un estratto di On Program Synthesis and Large Language Models - Why it is unlikely new developments in machine intelligence will eventually make programming obsolete di Hans Hüttel (pubblicato su Communications of the ACM, gennaio 2025 - Vol. 68 No. 1 al quale rimandiamo per i dettagli).