Vibe Coding
Il vibe coding consiste nel creare software descrivendolo a un modello di IA e accettando il codice generato senza leggerlo; il termine è stato coniato nel 2025.
Il vibe coding consiste nel creare software descrivendo in linguaggio naturale ciò che si vuole a un modello di IA e accettando il codice prodotto senza leggerlo, valutando il risultato solo in base al fatto che il programma sembri funzionare. Andrej Karpathy, membro fondatore di OpenAI ed ex direttore dell'IA di Tesla, ha dato un nome a questa pratica nel febbraio 2025, definendola "un nuovo tipo di programmazione" in cui "ti abbandoni completamente alle sensazioni, abbracci gli esponenziali e dimentichi persino che il codice esiste". Ha raccontato di parlare a voce con Composer di Cursor, fare clic su "Accetta tutto" senza leggere le differenze e incollare messaggi di errore senza aggiungere commenti; ha definito questo approccio "non male per progetti usa e getta del fine settimana". Nel giro di pochi mesi, il termine si è diffuso ben oltre la comunità dei programmatori e Collins Dictionary ha nominato "vibe coding" parola dell'anno 2025. Agenti di programmazione come Cursor, Claude Code e Replit Agent, e strumenti per creare app come Lovable, Bolt e v0, permettono anche a chi non ha esperienza di programmazione di passare da un prompt a un'app web distribuita.
Come funziona il vibe coding#
La persona descrive il comportamento e verifica il risultato, mentre un agente IA scrive, modifica e corregge il codice. Ogni iterazione funziona, genera un errore che la persona incolla nella conversazione oppure sembra sbagliata e porta a una nuova descrizione:
L'approccio funziona perché i modelli linguistici di grandi dimensioni (LLMs), soprattutto i modelli di ragionamento addestrati sul codice, ora producono programmi funzionanti per stack comuni, come interfacce web e script Python, e perché l'infrastruttura dell'agente di uno strumento di programmazione può eseguire il programma e leggerne gli errori senza aiuto. È adatto a prototipi, strumenti interni e software personali il cui unico utente è l'autore, quando un bug costa poco e la velocità è la priorità.
Vibe coding e pratiche correlate#
- Programmazione assistita dall'IA: usare un LLM per scrivere codice che uno sviluppatore poi esamina e comprende. Simon Willison ha tracciato il confine nel suo articolo Not all AI-assisted programming is vibe coding: il codice scritto da un LLM che poi hai esaminato, testato a fondo e che sai spiegare a un'altra persona è sviluppo software.
- Programmazione agentica: agenti di programmazione che portano a termine attività dall'inizio alla fine, gli stessi strumenti usati da chi fa vibe coding. I team professionali mantengono attivi revisione del codice, test e integrazione continua (CI).
- Piattaforme low-code e no-code: strumenti visivi che consentono a chi non programma di assemblare app con componenti predefiniti. Il vibe coding, invece, produce normale codice sorgente in qualsiasi linguaggio o framework.
- IA generativa: la tecnologia più ampia che crea testo, immagini e codice. Il vibe coding è un modo di usarla.
Creare app di visione artificiale con il vibe coding#
I prototipi di visione artificiale sono progetti di vibe coding molto diffusi, perché uno script breve può già rilevare, contare o tracciare oggetti ripresi da una webcam. Il codice generato è aggiornato solo quanto i dati di addestramento del modello, quindi un agente che si affida alla memoria può suggerire pesi o argomenti del modello non più aggiornati. Le Ultralytics Agent Skills forniscono a Claude Code, Codex, Cursor e ad altri agenti compatibili procedure per scegliere i modelli, preparare i dataset, eseguire l'addestramento, l'inferenza e l'esportazione, basandosi su cataloghi fissati a una release ultralytics; inoltre indicano all'agente di fidarsi dell'output yolo checks e yolo cfg del pacchetto installato quando i due non concordano. Una richiesta come "addestra un rilevatore YOLO26 sul mio dataset ed esportalo in ONNX" segue quindi le procedure di addestramento ed esportazione descritte dalle skills, invece di affidarsi ai ricordi del modello sulle release precedenti.
Rischi del codice non revisionato#
Karpathy ha osservato che il codice "diventa più complesso di quanto riesca normalmente a comprendere", perciò anche le modifiche e le correzioni successive dipendono dal modello e il debito tecnico si accumula dove nessuno guarda. Gli agenti con accesso alla shell possono eliminare file o eseguire comandi distruttivi; per questo gli strumenti di programmazione li eseguono in una sandbox per agenti e chiedono conferma prima delle azioni rischiose. Anche una dipendenza o una pagina web letta dall'agente può contenere una prompt injection. Anche le vulnerabilità di sicurezza arrivano fino al rilascio: nel test del 2025 di Veracode, condotto su oltre 100 LLM e 80 attività di programmazione, il codice generato ha introdotto una vulnerabilità di sicurezza nel 45% dei casi, con tassi di errore superiori al 70% per Java e compresi tra il 38% e il 45% per Python, C# e JavaScript.










