Con l’intelligenza artificiale diventeremo tutti programmatori?

con-l’intelligenza-artificiale-diventeremo-tutti-programmatori?
Con l’intelligenza artificiale diventeremo tutti programmatori?

Caricamento player

Nel gennaio del 2023 Andrej Karpathy, esperto di intelligenza artificiale e co-fondatore di OpenAI, scrisse su X che «il linguaggio di programmazione più in voga del momento è l’inglese». Karpathy fu tra i primi a notare come le intelligenze artificiali generative stessero cambiando il lavoro dei programmatori, generando codice sulla base di richieste scritte in linguaggio naturale, in questo caso la lingua inglese, e non di programmazione.

Da allora il settore è progredito molto velocemente e l’impatto dei modelli linguistici di grandi dimensioni (LLM), come ChatGPT, nell’informatica è aumentato. Lo scorso febbraio Karpathy è tornato sul tema, parlando di un nuovo tipo di programmazione per cui quasi non serve saper programmare: il cosiddetto «vibe coding». Per come lo ha definito Karpathy, il vibe coding consiste nell’utilizzare i chatbot per generare codice accettando i risultati prodotti e riducendo al minimo l’intervento umano. Se il codice contiene un bug, ha spiegato, ci si limita a copiare e incollare il messaggio di errore nel chatbot e a utilizzare il rimedio proposto dall’AI. «Non è proprio programmare: vedo cose e copio-incollo delle cose, le faccio andare, e funziona quasi sempre».

Il vibe coding può essere visto come un’applicazione estrema delle AI generative nel campo della programmazione. Grazie a strumenti come ChatGPT, infatti, è ormai sufficiente descrivere al chatbot cosa si vuole sviluppare per ottenere del codice informatico, che a quel punto si può utilizzare così com’è, oppure può fungere da punto di partenza. Nel vibe coding, di solito, si tende ad affidarsi all’AI: anche per questo viene utilizzato soprattutto per sperimentare.

Nel giro di poche settimane il vibe coding ha creato un dibattito tra gli addetti ai lavori sul futuro della programmazione, uno dei settori più esposti ai cambiamenti degli ultimi anni. Le aziende di AI, che hanno costi molto alti, stanno infatti ancora cercando un modello di business sostenibile, e la programmazione potrebbe essere il settore su cui puntare. A tal proposito, l’analista Benedict Evans ha scritto nella sua newsletter che «il coding è l’unico settore in cui gli LLM hanno davvero un prodotto, un mercato, delle entrate».

Molte delle startup più discusse del settore si concentrano proprio sulla generazione di codice. Tra queste c’è Anysphere, che ha sviluppato Cursor, uno dei servizi più usati per il vibe coding, e sta negoziando un investimento con una valutazione di 10 miliardi di dollari. Anche Anthropic, che ha creato il chatbot Claude, è valutata oltre 60 miliardi. Tra le grandi aziende, Microsoft ha puntato sul coding sin dal 2021 con GitHub Copilot, un servizio in grado di assistere i programmatori anche generando codice (il cui nome ha ispirato la linea AI Copilot, oggi in uso in molti altri prodotti dell’azienda).

L’idea che le AI siano in grado di sostituire almeno in parte i programmatori circola da qualche anno. A gennaio Mark Zuckerberg ha detto che «probabilmente nel 2025» Meta e altre aziende saranno dotate di AI in grado di «fare efficacemente il lavoro di un programmatore di medio livello». Secondo il capo di Anthropic Dario Amodei, nell’arco di un periodo che va dai tre ai sei mesi, le AI scriveranno «il 90% del codice», mentre entro un anno «potremmo ritrovarci in un mondo in cui l’AI scrive tutto il codice».

Quando si parla di vibe coding, però, ci si riferisce a un uso meno professionale di questi strumenti e alla possibilità di rendere lo sviluppo di software accessibile anche a chi non sa programmare. Oltre ai citati Claude, ChatGPT e Cursor, esistono servizi online pensati espressamente per questo, come Bolt e Lovable (lo slogan di quest’ultimo è «dall’idea all’app in pochi secondi»). Funzionano come normali chatbot, ma nella parte destra dello schermo mostrano il codice generato in tempo reale e il risultato finale, che può essere navigato e utilizzato. È sufficiente chiedere a Lovable di «creare una landing page per una rivista chiamata Vibing and Coding», per ottenere in meno di due minuti questo sito, ad esempio.

Ethan Mollick, docente della University of Pennsylvania e autore del saggio Co-Intelligence: Living and Working with AI, ha sperimentato il vibe coding chiedendo a Claude Code (un software con cui è possibile usare il modello linguistico di Anthropic per generare codice) di «sviluppare un gioco in 3D dove posso posizionare edifici di forme diverse e guidare attraverso la città che ho creato». Il risultato è un gioco rudimentale e poco divertente, con parecchi problemi tecnici, ma che è stato creato in pochi minuti, senza l’utilizzo di codice da parte di Mollick.

Le applicazioni del vibe coding sono varie e possono interessare soprattutto chi non vuole creare un prodotto professionale ma vuole sfruttare le capacità delle AI per divertimento o fini artistici. Giacomo Miceli, programmatore e artista di new media, racconta che dopo l’uscita di GPT-4 (la quarta versione del modello linguistico di OpenAI, su cui si basa ChatGPT), nel marzo del 2023, notò subito un forte cambiamento nelle sue abitudini: anziché fare domande precise su come risolvere un problema di codice, racconta, «ho cominciato a chiedere cose più generiche, descrivendo quello che desideravo, dando al modello maggiore autonomia di risolvere il problema nel modo che preferiva».

Marta Fioravanti, creative technologist presso oio.studio, racconta che la sua prima reazione al vibe coding è stata di «estremo disgusto», anche se oggi vede il fenomeno come parte dell’evoluzione della programmazione stessa. «Nella storia della scrittura di software ci sono stati molti di questi cambiamenti, e i linguaggi stessi si sono adattati alle nuove esigenze». Ad esempio, da tempo non si usa più il linguaggio macchina di livello più basso per creare software, come quello binario. Secondo lei e molti altri, anche gli LLM, quindi, possono rientrare in questo processo di semplificazione e astrazione della programmazione.

L’automazione di questo tipo di scrittura non è iniziata con gli LLM: da ormai decenni alcuni linguaggi prevedono sistemi molto intuitivi e interfacce grafiche che limitano l’inserimento di codice informatico. Matteo Cancellieri, lead developer del database di paper accademici open source CORE, ricorda come già negli anni Zero esistevano linguaggi simili, anche se più rudimentali: «Ai tempi si pensava che presto chiunque sarebbe stato in grado di creare qualsiasi applicazione visiva semplicemente facendo drag and drop di componenti e collegandoli con delle frecce».

L’idea di creare un sito o un gioco online con una semplice descrizione testuale è insomma molto promettente, ma affidarsi ciecamente a queste tecnologie è rischioso, specie per i progetti che vogliono durare nel tempo. Il codice generato dalle AI, infatti, viene spesso definito ridondante e prolisso, con molte più linee di codice del dovuto, un fenomeno che nel gergo del settore viene detto «spaghetti code» e può rappresentare un problema perché è più difficile da mantenere.

Anche per questo, secondo Cancellieri, «se si vuole un’applicazione che sia robusta e duri nel tempo, bisogna essere in grado di guardare sotto al cofano e capire i problemi del codice». Al di là delle notevoli capacità degli LLM, insomma, molti programmatori ritengono che la loro figura professionale sia ancora necessaria, nonostante tutto. Nella maggior parte dei casi, il codice generato attraverso il vibe coding contiene errori o ha bisogno di così tante modifiche da non convenire quasi mai se si vuole ottenere un risultato di qualità. Miceli propone il confronto con altre tecnologie, come gli aerei di linea: «La maggior parte del volo è nelle mani del pilota automatico, ma per decollo e atterraggio, le fasi più critiche, gli umani insistono ad avere il controllo totale. Lo stesso avverrà per il codice scritto per fini commerciali».

Gli LLM, inoltre, funzionano soprattutto quando possono basare le loro risposte su un ampio corpus di documenti e precedenti. Secondo Riccardo Patanè, back end developer per una multinazionale danese, «chiedere a un’AI di creare una calcolatrice o una web app per gestire un timer è come chiederle di creare un’immagine di un “ragazzo con gli occhi verdi e i capelli lunghi”». Vuol dire che il chatbot lo può fare facilmente, e con ottimi risultati, perché ha molto materiale su cui basarsi. I risultati si fanno invece più scadenti man mano che la richiesta si allontana dal materiale di partenza su cui questi modelli linguistici sono stati allenati.

Tra alcuni professionisti del settore è diffuso anche il timore che l’uso massiccio degli LLM possa ridurre le capacità creative e di problem solving. Questo è quanto sostenuto dai ricercatori di Microsoft e della Carnegie Mellon University, autori di un recente saggio sulla possibilità che l’automazione di processi simili possa «atrofizzare» le capacità cognitive delle persone. Affidandosi troppo agli LLM, secondo Fioravanti, si rischia di disimparare a programmare ma anche di lasciare che queste AI sviluppino un linguaggio sempre più particolare, con il rischio che diventi incomprensibile agli umani.

Andrea Ragazzi, responsabile di Life Sciences dell’azienda di consulenza Deloitte, sperimenta l’utilizzo di diversi sistemi di AI allo stesso tempo, ad esempio chiedendo a Claude di generare dei prompt (le richieste testuali da porre a un’AI generativa) ottimizzati per Cursor, che poi genera il codice. Anche in questo caso il risultato non è perfetto, ma può essere sufficiente per un certo tipo di utenti. Anche Ragazzi sottolinea il rischio che questa abitudine possa farci perdere alcune capacità risolutive, «passando dal paradigma del “saper fare” a quello del “saper far fare”», in questo caso alle AI.

C’è infine chi considera il vibe coding una novità positiva per tutta l’industria, proprio perché le AI aprono lo sviluppo di software potenzialmente a chiunque. Alessandro Piconi, senior web developer, non crede che sistemi di questo tipo siano una minaccia per il suo lavoro e nota come l’alfabetizzazione di massa non solo non ha portato alla scomparsa degli scrittori, ma ha anzi «ampliato il loro pubblico».

Related Post