Go down


Quando l'AI scrive il codice, cosa significa davvero saper programmare?

Qualche settimana fa mio figlio mi ha fatto una domanda apparentemente semplice: «Papà, ma come si fa un videogioco?»

Avrei potuto iniziare a spiegargli cos'è un linguaggio di programmazione, come funziona un ciclo, una variabile, un oggetto. Del resto è così che ho imparato io. Questa volta però abbiamo fatto una cosa diversa: gli ho chiesto «Che gioco vorresti fare?», e siamo partiti da lì.

Abbiamo discusso l'idea, le meccaniche, come avrebbe dovuto muoversi il personaggio, come costruire la mappa, cosa sarebbe dovuto succedere entrando in una stanza o incontrando un nemico. Poi abbiamo iniziato a costruirlo. Solo che io, praticamente, non ho scritto codice.

Non programmavo. Ma stavo programmando

Ho descritto quello che volevo, ho eseguito il gioco, ho guardato cosa succedeva. Quando qualcosa non funzionava, non mi limitavo a dire «c'è un bug»: cercavo di capire il comportamento. Per esempio: «Ho notato un rallentamento dopo alcune azioni. Controlla come viene gestito quel processo: temo che continui a rimanere attivo anche quando dovrebbe essere terminato.»

L'AI analizzava il codice, cercava il problema, proponeva una modifica e la implementava. Io provavo di nuovo, e il ciclo ricominciava: idea, implementazione, test, osservazione, correzione, nuovo test.

Questo processo assomiglia moltissimo allo sviluppo software tradizionale, con una differenza non trascurabile: il codice non lo stavo scrivendo io.

Quindi chi stava programmando?

La risposta più immediata sarebbe: l'intelligenza artificiale. Non ne sono convinto. L'AI produceva codice, ma io decidevo cosa costruire, verificavo il risultato, riconoscevo i comportamenti anomali, formulavo ipotesi e decidevo quale direzione prendere. Senza quelle indicazioni avrebbe potuto continuare a produrre codice perfettamente plausibile e completamente sbagliato rispetto a ciò che volevamo ottenere.

Ed è qui che la domanda di mio figlio ha iniziato a sembrarmi molto meno banale. Cosa significa oggi "saper programmare"? Per decenni abbiamo associato questa capacità soprattutto alla conoscenza dei linguaggi: Java, C, Python, JavaScript, sintassi, framework, librerie, API. Sono competenze che restano importanti, ma sta emergendo un livello diverso. Non necessariamente superiore. Semplicemente diverso.

Un nuovo livello sopra il codice

Nella storia dell'informatica è già successo molte volte. Non programmiamo più scrivendo sequenze di bit, raramente lavoriamo direttamente in assembly: usiamo linguaggi ad alto livello, framework, librerie e servizi che nascondono enormi quantità di complessità. Ogni generazione di strumenti ha spostato un po' più in alto il livello al quale possiamo ragionare.

L'intelligenza artificiale potrebbe essere un altro di questi passaggi, solo molto più grande, perché questa volta l'astrazione non riguarda soltanto il linguaggio: riguarda il modo stesso in cui descriviamo ciò che vogliamo costruire. Non dico più necessariamente crea questa classe, implementa questa interfaccia, scrivi questo metodo. Posso dire quando il giocatore entra in questa stanza voglio che accada questo. La distanza tra intenzione e implementazione si sta accorciando enormemente, e questo cambia qualcosa.

Ma c'è un problema

Se creare software diventa più semplice, potremmo essere tentati di concludere che servano meno competenze. Io arrivo alla conclusione opposta. Serve conoscere meno sintassi per iniziare a costruire qualcosa, ma per costruire qualcosa che funzioni davvero bisogna comunque saper ragionare: capire un problema, dividerlo, descriverlo, riconoscere un risultato sbagliato, formulare un'ipotesi, verificarla, cambiare strada quando necessario.

In altre parole, l'AI può ridurre enormemente il costo della produzione, ma non elimina il costo della comprensione. Anzi: più diventa facile produrre, più diventa importante capire cosa stiamo producendo. È un paradosso che probabilmente vedremo sempre più spesso. Possiamo generare più codice senza necessariamente comprenderne di più, e le due cose non sono equivalenti.

Alla fine mio figlio non ha imparato a programmare

Almeno non nel senso in cui lo intendevo io alla sua età. Non ha imparato la sintassi di un linguaggio, non ha studiato strutture dati, non sa cosa sia un thread. Ma ha fatto qualcosa che considero comunque interessante: ha immaginato un sistema, ha stabilito delle regole, ha visto quelle regole trasformarsi in qualcosa di funzionante. Ha scoperto che alcune idee sulla carta sembravano bellissime e nel gioco erano terribili, le ha cambiate, ha provato di nuovo.

Forse non ha imparato a scrivere codice, ma ha iniziato a capire una cosa importante: una macchina può costruire qualcosa per te, ma devi essere tu a sapere cosa vuoi costruire, riconoscere quando il risultato non è quello che volevi e capire quale direzione prendere.

Ai nostri figli continueremo a insegnare a programmare, ed è giusto che sia così. Ma dovremo insegnare loro anche qualcosa che fino a pochi anni fa non era necessario: come guidare una macchina capace di programmare al posto loro.

E, soprattutto, come capire quando sta sbagliando.


Pubblicato il 21 agosto 2026

Gianluca Garofalo

Gianluca Garofalo / AI Responsabile & Governance | Automazione Strategica | Associate Manager @Accenture | Comitato Tecnico Scientifico @ENIA

https://ggarofalo-dev.github.io/