Da leader di un’azienda che sta investendo pesantemente nel segmento delle soluzioni per l’intelligenza artificiale, il CEO di Nvidia Jensen Huang se ne è uscito con una dichiarazione che fa discutere. Il numero uno di NVidia, in occasione di un incontro svoltosi a Dubai alla presenza di tanti leader mondiali, ha detto senza mezze parole che imparare a programmare è inutile. Le nuove generazioni, sempre secondo Huang, non dovrebbero più dedicarsi ad apprendere i vari linguaggi di sviluppo ma dovrebbero investire su altre preziose competenze come la biologia, l’istruzione, la produzione o l’agricoltura.
Come si può vedere nel breve spezzone video pubblicato su X, l’amministratore delegato di NVidia ha osservato che per 10-15 anni quasi ogni persona seduta sul palco di un forum tecnologico ha insistito sul fatto che è “vitale” per i giovani imparare a programmare i computer e, in generale, i dispositivi elettronici. Huang ha detto che, a suo modo di vedere, queste considerazioni possono essere d’ora in avanti del tutto stralciate.
“Il nostro compito è creare una tecnologia informatica tale che nessuno debba programmarla. E che anzi, il linguaggio di programmazione sia quello umano“, ha detto Huang. “Tutti nel mondo ora sono programmatori. Questo è il miracolo dell’intelligenza artificiale“.
L’intelligenza artificiale ha ucciso la programmazione, secondo Jensen Huang
Non è la prima volta che Huang sostiene una tesi come quella avanzata nelle scorse ore. L’intelligenza artificiale e, in particolare, i modelli generativi permettono a qualunque utente di generare codice di programmazione funzionante in qualsiasi linguaggio. L’unica lingua della quale hanno bisogno gli utenti per scrivere codice, sempre secondo “il timoniere” di NVidia, è quella che parlano meglio. Insomma, ormai basta e avanza il linguaggio naturale per ottenere codice da trasferire alle macchine.
A nostro modo di vedere, le dichiarazioni di Huang sono forse un po’ troppo ottimistiche. Un certo Steve Jobs ricordava ai tempi quanto fosse cruciale imparare la programmazione. Il fondatore di Apple ricordava l’importanza della programmazione come strumento per sviluppare il pensiero critico e la risoluzione creativa dei problemi. Storico il suo discorso di apertura al Reed College nel 2005: “penso che tutti dovrebbero imparare a programmare un computer, perché ti insegna a pensare in modo diverso. Penso che dedicarsi al coding dovrebbe essere obbligatorio nelle scuole. È il linguaggio del pensiero logico“. In Italia ci stiamo investendo da poco e, forse, non ancora abbastanza a livello didattico. E adesso arriva Huang che ci dice che è tutto inutile perché a sviluppare ci pensa e ci penserà un’intelligenza artificiale.
Quanto c’è di vero nelle dichiarazioni di Huang e quali considerazioni ci sentiamo di fare
Se si pensa a GitHub Copilot e ai dati condivisi dalla controllata di Microsoft, a sua volta coinvolta in profondità nello sviluppo e nell’integrazione di nuove soluzioni di IA basate sulla tecnologia OpenAI, sappiamo che buona parte del codice pubblicato sulla piattaforma di hosting è generato dagli sviluppatori avvalendosi dell’intelligenza artificiale.
Già a fine 2022 avevamo dato spazio alla visione di Matt Welsh, ex docente dell’Università di Harvard, cofondatore di Fixie.ai, azienda dedita a ripensare le modalità dello sviluppo software di tipo tradizionale. Anche Welsh sostiene che la programmazione informatica è morta e che è essa destinata ad evolvere in qualcosa di molto diverso rispetto a come l’avevamo concepita fino ad oggi.
Difficile “fare le pulci” alla visione di alcuni tra i più noti pezzi da novanta del mondo dell’informatica moderna, oltre che grandi esperti di intelligenza artificiale.
Ciò che, nel nostro piccolo, ci sentiamo di osservare è che le conclusioni alle quali è pervenuto Huang ci paiono esageratamente troppo nette; sembrano giudizi scritti sulla pietra, quasi inappellabili. Per tanti (troppi?) anni abbiamo letto o sentito dire che qualcosa avrebbe ucciso la programmazione classica. E invece, ancora oggi, la cruda realtà è che le aziende si trovano in grave difficoltà perché non ci sono abbastanza sviluppatori con le competenze adeguate.
Come fanno i modelli generativi a produrre codice di programmazione
Sviluppatori sostituiti da un’intelligenza artificiale? Allo stato attuale lo vediamo ancora poco probabile. Le IA e i modelli generativi non sono qualcosa di “magico”: si basano su approccio stocastico. Come abbiamo visto nell’articolo in cui spieghiamo come i modelli generativi possano essere al servizio delle decisioni aziendali, si tratta di modelli non deterministici che utilizzano le distribuzioni di probabilità per descrivere il mondo reale e tentare di mettere in correlazione parole, concetti e…, ad esempio, codice di programmazione.
Tutto nasce da un’attenta, approfondita e meticolosa attività di addestramento: maggiore è la qualità e la “specificità” dei dati utilizzati, migliori e più pertinenti saranno i risultati prodotti dal modello generativo. In un altro articolo abbiamo provato a confrontare la differenza tra approccio stocastico e deterministico.
L’intelligenza artificiale così strenuamente sostenuta da Huang funziona avvalendosi di modelli generativi che possono contare sulle risorse computazionali offerte, ad esempio, dalle GPU NVidia. Ma la qualità dei risultati, limitandoci al codice di programmazione, dipende largamente dai dati usati in fase di addestramento. E questi dati sono spesso sorgenti di applicazioni e routine sviluppati da sviluppatori in carne ed ossa, poi dati in pasto “in massa” al LLM (Large Language Model) che sarà alla fine usato dal modello generativo per creare nuovo codice con un approccio stocastico.
Sorgente di scarsa qualità, codice di programmazione destinato a non funzionare
Se insomma un ipotetico modello generativo non potesse contare su una fase di addestramento iniziale ben eseguita, il codice di programmazione da esso creato sarebbe scadente. Inoltre, senza la disponibilità di codice di qualità scritto da “sviluppatori umani”, come si potrebbe oggi pervenire a codice funzionante generato dall’IA?
Ma poi, avete provato a chiedere la generazione di codice leggermente più complesso a un modello generativo? Nella stragrande maggioranza dei casi, quel codice richiede comunque un’attenta analisi e una serie di rettifiche e di ottimizzazioni da parte di uno sviluppatore competente. Altro che inutilità degli studi in fatto di programmazione!
A nostro avviso, quindi, i modelli generativi sono un ottimo strumento per velocizzare (anche) le attività di sviluppo software (abbiamo dato anche qualche consiglio per programmare con ChatGPT e sottolineato quando Phind sia abile in fatto di programmazione), soprattutto per mettere a punto routine ricorrenti e ottenere un template di base sul quale poi andare a costruire qualcosa di più articolato. Non possono ad oggi offrire risultati qualitativamente elevati in qualsiasi campo applicativo né tanto meno possono sostituirsi in toto a uno sviluppatore in carne ed ossa.
Se Huang avesse più prudentemente dichiarato che l’IA non ucciderà la programmazione, ma la metterà nelle mani di più persone, sarebbe stato a nostro avviso certamente più obiettivo e… con i piedi per terra.
Quindi sì, secondo noi resta sempre fondamentale per le nuove generazioni imparare la programmazione: diversamente, non si riuscirebbe a sviluppare quel prezioso spirito critico e quel bagaglio di competenze utili per capire che cosa l’IA davvero ha realizzato. Diversamente, in assenza di questi strumenti, ci trasformeremmo noi quasi in automi disposti ad accettare passivamente ciò che viene proposto.
L’immagine in apertura è tratta da questo comunicato stampa di NVidia.