Vai al contenuto

Podcast RSI – “Vibe coding”: creare programmi senza saper programmare

Visualizzazioni: 682

Questo è il testo della puntata del 31 marzo 2025 del podcast Il Disinformatico della Radiotelevisione Svizzera, scritto, montato e condotto dal sottoscritto. Il testo include anche i link alle fonti di questa puntata.

Le puntate del Disinformatico sono ascoltabili anche tramite iTunes, YouTube Music, Spotify e feed RSS. Il mio archivio delle puntate è presso Attivissimo.me/disi.


[AUDIO: picchiettio su una tastiera]

Il crepitio dei tasti di un programmatore che scrive codice per comporre un programma è probabilmente uno dei suoni più caratteristici dell’informatica. Da decenni, saper programmare significa avere pieno potere, avere la facoltà di far fare quello che si vuole al computer o tablet o telefono che sia, poter creare app, senza dover dipendere da nessuno. Ma quel potere richiede studio e impegno: bisogna imparare i linguaggi di programmazione, ciascuno con una sintassi e delle regole differenti, e per molte persone questo non è facile o è semplicemente impossibile. Programmare resta così un’arte praticata da pochi e ammirata a rispettosa distanza dai più.

Tutto questo, però, sta forse per cambiare improvvisamente. Se state pensando di diventare programmatori o sviluppatori, o se siete genitori e pensate che far studiare gli arcani incantesimi della programmazione sia la strada maestra per una carriera informatica garantita per i vostri figli, ci sono due parole che vi conviene conoscere: vibe coding.

Sono due parole che sono state abbinate per la prima volta solo due mesi fa e stanno già trasformando profondamente il modo in cui si crea il software. Non lo si scrive più tediosamente riga per riga, istruzione per istruzione, ma lo si descrive, in linguaggio naturale, semplicemente parlando. Le macchine fanno il resto. O almeno così sembra.

Questa è la storia, breve ma intensa, del vibe coding, di cosa significa esattamente, di chi ha coniato questo termine, e del perché tutti i grandi nomi dell’informatica stanno correndo per reinventarsi, per l’ennesima volta, inseguendo questo mantra.

Benvenuti alla puntata del 31 marzo 2025 del Disinformatico, il podcast della Radiotelevisione Svizzera dedicato alle notizie e alle storie strane dell’informatica. Io sono Paolo Attivissimo.

[SIGLA di apertura]


Questa storia inizia esattamente il 3 febbraio scorso, quando in Europa è passata da poco la mezzanotte. Andrej Karpathy, ex direttore per l’intelligenza artificiale di Tesla, cofondatore di OpenAI (quella di ChatGPT, per intenderci) e una delle menti più influenti nel settore, pubblica su X un post nel quale descrive un nuovo modo di scrivere codice di programmazione usando toni quasi poetici, perlomeno per un informatico: lui si “abbandona alle vibrazioni” e “dimentica persino che esiste il codice”. Karpathy crea programmi parlando ad alta voce, “praticamente senza mai toccare la tastiera”, dice, lasciando che il riconoscimento vocale e l’intelligenza artificiale traducano le sue istruzioni verbali in righe di codice di programmazione.

Karpathy descrive il concetto generale, il cosiddetto vibe, la “vibrazione” appunto, di quello che vuole ottenere,e lascia che sia il computer a fare il lavoro di manovalanza: quello di trasformare quel concetto in software, ossia di fare il coding, la scrittura del codice secondo le regole del linguaggio di programmazione desiderato.

Senza volerlo, Andrej Karpathy ha coniato un termine, vibe coding, che di colpo ha dato un nome facile e accattivante a una tendenza già in atto nel mondo della programmazione da quando è diventato evidente che le intelligenze artificiali sono in grado di generare codice di programmazione con la stessa facilità con la quale generano testi, suoni e immagini.

E così milioni di tastiere crepitanti sono cadute, quasi all’unisono nel silenzio, abbracciando il vibe coding. Le aziende cercano disperatamente i vibe coder, ossia le persone capaci di generare in poche ore fiumi di codice che prima avrebbero richiesto giorni o settimane. I programmatori tradizionali si sentono improvvisamente come un calamaio di fronte a una biro.

Questo modo di scrivere software, di creare gli elementi fondamentali che determinano il funzionamento di tutti i dispositivi elettronici che usiamo, dai televisori alle automobili, dalle macchine per radiografie ai sistemi di gestione della contabilità, della sanità e del fisco, è un cambiamento enorme.

La maniera tradizionale di sviluppare codice richiede la conoscenza dettagliata dei linguaggi di programmazione e della loro pignola, implacabile sintassi. Una lettera fuori posto, una parentesi di troppo o una di meno, un parametro indicato nell’ordine sbagliato, e non funziona più niente. Ma l’intelligenza artificiale sta cambiando questo approccio, introducendo degli assistenti alla creazione di codice che sono in grado di interpretare la descrizione di un problema, espressa in parole comuni (anche in italiano), e generare del codice che funziona.

Non c’è più bisogno di studiare e ricordare tutti i vari linguaggi informatici: basta esprimersi in modo naturale in una sola lingua, quella che si usa tutti i giorni. Programmare non è più un’arte oscura riservata a una élite, ma arriva alla portata di tutti.

Le persone che hanno idee creative ma non hanno esperienza di programmazione possono ora creare dei prototipi descrivendo a un’intelligenza artificiale cosa hanno in mente. Come dice sempre Andrej Karpathy nel suo ormai storico post, “non sto scrivendo codice – semplicemente vedo cose, dico cose, eseguo cose, e copio e incollo cose, e grosso modo funziona”.

Chi ha esperienza di sviluppo e programmazione, invece, può usare questi strumenti per automatizzare le parti ripetitive della creazione di un programma e diventare più veloce. Le porzioni standard di un software, cose come per esempio una finestra di immissione di dati o di conferma di un codice di accesso, vengono generate dall’intelligenza artificiale, mentre lo sviluppatore si concentra sulla progettazione generale ad alto livello, riducendo drasticamente i tempi di lavoro.

Ma in pratica come funziona tutto questo?


Il vibe coding è un duetto: le persone forniscono istruzioni, descrizioni e obiettivi usando il proprio linguaggio naturale, e gli strumenti di intelligenza artificiale, che sono stati addestrati alimentandoli con enormi quantità di codice e di informazioni di programmazione, traducono tutto questo in una prima bozza di codice.

Le istruzioni fornite sono estremamente semplici e intuitive: cose come “crea un sito che gestisca le prenotazioni, dove i clienti possono vedere quando io sono disponibile e pianificare gli appuntamenti. Il sito deve mandare e-mail di conferma e di promemoria”. Tutto qui. A tutto il resto provvede l’intelligenza artificiale.

È un modo di lavorare iterativo e interattivo, che avanza per affinamenti progressivi: la persona prova la prima bozza e poi chiede alla IA di modificare il codice, descrivendo sempre in linguaggio naturale cosa deve cambiare: per esempio come deve comportarsi il programma se l’utente immette un valore non ammesso e cosa va visualizzato sullo schermo. La persona prova questa seconda bozza e la affina ancora descrivendo le modifiche da fare, e la IA le fa. Il ciclo continua così fino a che il software funziona e il creatore è soddisfatto del risultato. Dato che l’intelligenza artificiale scrive il codice molto più velocemente di qualunque essere umano, è facile effettuare varie passate di affinamento in pochissimo tempo.

L’intelligenza artificiale è anche in grado di correggere eventuali difetti nel codice che ha generato. Quando un software non funziona correttamente, produce un messaggio di errore. Nel vibe coding, il creatore di programmi (che è difficile definire programmatore a questo punto) non analizza l’errore come farebbe tradizionalmente: copia e incolla il messaggio di errore nella chat che sta facendo con l’intelligenza artificiale e lascia che sia questa IA a leggerlo e a trovare e applicare la soluzione opportuna. Anche perché nel vibe coding la persona che sta creando il programma spesso non conosce il linguaggio di programmazione usato e quindi non è in grado di capirne gli errori e correggerli.

Le intelligenze artificiali da adoperare per fare queste cose possono essere specialistiche, come GitHub Copilot, Windsurf AI, Replit e Cursor, oppure intelligenze artificiali generaliste come ChatGPT e Claude, per esempio, che sono in grado di generare anche codice di programmazione.

Ovviamente alle aziende tutto questo fa molta gola, perché promette di ridurre tempi e costi. Con il vibe coding, argomentano, non servono squadre di costosi e supercompetenti programmatori, ma è sufficiente pagare una sola persona con qualifiche più modeste e con pretese economiche altrettanto modeste.

Dario Amodei, fondatore e CEO di Anthropic, l’azienda che ha sviluppato Claude, dice che “non siamo lontani – ci arriveremo fra tre o sei mesi – da un mondo nel quale l’intelligenza artificiale scrive il 90% del codice. Fra dodici mesi potremmo trovarci in un mondo nel quale la IA scrive praticamente tutto il codice.”

[CLIP di Amodei, tratta da Reddit]

I sostenitori di questo nuovo modo di programmare citano come esempio di successo del vibe coding il fatto che il giornalista del New York Times Kevin Roose, che non è un esperto di programmazione, è riuscito a creare numerose applicazioni usando questa tecnica e lo ha raccontato in un seguitissimo articolo.

Un altro esempio molto popolare è il sito fly.pieter.com, che contiene un gioco online (un simulatore di volo molto schematico) che stando al suo creatore, Pieter Levels, guadagna oltre 50.000 dollari al mese vendendo spazi pubblicitari all’interno del mondo virtuale nel quale si svolge l’azione. L’intero gioco è stato realizzato da Levels, da solo e usando l’intelligenza artificiale come assistente, in mezz’ora. Un risultato inimmaginabile con i metodi tradizionali.

Su Internet fioriscono siti che tentano di imitare il successo di Pieter Levels creando in poco tempo videogiochi giocabili anche se poco raffinati, nella speranza di guadagnare qualche soldo. Ma Levels è stato il primo e ha un seguito molto grande sui social network che può proporre ai suoi inserzionisti, mentre chi arriva dopo e lo imita non ha nulla di tutto questo, per cui ha ben poche probabilità di monetizzare la sua pur modesta fatica.

In ogni caso il vibe coding sembra funzionare. Ma prima di buttar via i manuali di programmazione e pensare che basti saper parlare per poter creare programmi, ci sono alcune cose da sapere. Come al solito, quello che sembra troppo bello per essere vero finisce prima o poi per dimostrare di non essere vero.


Il primo problema di questa nuova mania della Silicon Valley è la sua filosofia di base: il creatore del codice non solo non ha bisogno di capirlo, ma anzi capirlo è proprio contrario all’essenza del vibe coding: in realtà non deve essere un creatore ma un utente del codice, e deve accettare quel codice generato dalla IA senza capirlo appieno, altrimenti sta facendo solo programmazione assistita. E questo requisito di non comprendere il codice significa che se il programma non funziona e l’intelligenza artificiale non riesce a sistemarlo, l’aspirante creatore è incapace di intervenire.

Il secondo problema deriva dal primo: anche se il programma creato con il vibe coding sembra funzionare nella maggior parte dei casi, può contenere errori o difetti nei suoi princìpi di funzionamento che emergono solo in casi specifici. Può contenere falle di sicurezza, e modificarlo per manutenzione o aggiornamento è rischioso. Senza una costosa analisi esperta di come funziona, è impossibile sapere come intervenire, e far fare l’intervento all’intelligenza artificiale significa rischiare di introdurre ulteriori errori e incognite, perché la IA non “capisce” in senso stretto cosa sta facendo ma si limita a generare codice statisticamente probabile nel contesto.

Questo è un approccio che può andar bene per creare da zero un prototipo di software, a scopo dimostrativo, qualcosa di semplice per uso personale. Ma gran parte del lavoro degli ingegneri informatici non è di questo genere. Di solito si tratta di interventi su software complesso e preesistente, nel quale la comprensione e la qualità del codice sono fondamentali. Per intervenire su un software di contabilità, per esempio, bisogna capirne non solo il linguaggio informatico, ma anche i princìpi contabili sui quali si basa. E questo l’intelligenza artificiale attuale non lo fa.

Per fare un paragone, il vibe coding applicato a un software già esistente è l’equivalente di un idraulico che invece di studiarsi e capire lo schema dell’impianto sul quale deve intervenire sa che nella maggior parte dei casi che ha visto nella sua carriera le cose miglioravano chiudendo a metà le valvole sui tubi di mandata dispari. Non sa perché, ma di solito funziona. Affidereste il vostro impianto idraulico di casa, o quello di un’intera azienda o di un intero paese, a qualcuno che lavorasse in questo modo?

Probabilmente no. Eppure è esattamente quello che vuole fare Elon Musk, nel suo nuovo ruolo politico, con uno dei software più complessi e ingarbugliati del pianeta: quello che gestisce la previdenza sociale delle persone residenti negli Stati Uniti. Questo software è composto da oltre 60 milioni di righe di codice scritto in COBOL, che è un linguaggio di programmazione creato settant’anni fa, e da milioni di ulteriori righe scritte in altri linguaggi ormai arcaici. L’ultimo aggiornamento importante dei suoi componenti centrali risale agli anni Ottanta del secolo scorso.

Questo è il software che gestisce, fra le altre cose, i pagamenti di previdenza sociale erogati a oltre 65 milioni di persone. Metterci mano senza un’analisi preliminare molto attenta, senza una profonda comprensione del codice che permetta di capire gli effetti a catena di qualunque modifica, significa rischiare di interrompere i pagamenti a milioni di persone che dipendono dalla propria pensione per vivere. Nel 2017 l’agenzia per la previdenza sociale statunitense, che è responsabile di tutto questo sistema, aveva stimato che un ammodernamento dei suoi componenti centrali avrebbe richiesto circa cinque anni. Elon Musk ha dichiarato che vuole farlo nel giro di pochi mesi. Ma l’unico modo per farlo in tempi così stretti è usare l’intelligenza artificiale e rinunciare alle analisi e ai collaudi che normalmente si fanno in situazioni come questa. Cosa mai potrebbe andare storto?

Morale della storia: il vibe coding è un’idea interessante, applicabile in alcuni casi quando le conseguenze di un errore di programmazione non sono gravi e si vuole creare un prototipo che “grosso modo funzioni”, per citare le parole di Andrej Karpathy, ma non può per ora sostituire la competenza di un essere umano che conosce i linguaggi di programmazione e comprende la logica che sta dietro qualunque programma. Non è ancora giunto il momento di buttare via i libri e i manuali, insomma.

Pochi giorni fa ho chiesto a uno sviluppatore che ho incontrato cosa ne pensasse di questa moda del vibe coding, e lui mi ha detto che ne è entusiasta. Non perché lo usi, ma perché sa che avrà più lavoro di prima: quello necessario per correggere i disastri combinati da chi lo usa pensando che ignoranza più IA equivalga a conoscenza, competenza e intelligenza.

Fonti aggiuntive

DOGE Plans to Rewrite Entire Social Security Codebase in Just ‘a Few Months’: Report, Gizmodo (2025)