Vibe Coding

Miniatura

Cos’è il Vibe Coding?

Il vibe coding è un metodo di programmazione basato sull’IA introdotto da Andrej Karpathy nel 2024/2025. Con il vibe coding, descrivi ciò che vuoi in prompt in linguaggio naturale e di solito i grandi modelli linguistici (LLM) generano per te gran parte, spesso tutto, il codice funzionante. Se hai tempo, dai un’occhiata all’Art of Vibe Coding adattato da Rick Rubin per saperne di più sulla via del vibe coding.

Un grande vantaggio di questo nuovo metodo è l’accessibilità, poiché persone senza esperienza di programmazione possono costruire progetti mentre sviluppatori esperti possono prototipare rapidamente nuove idee prima di impegnarsi completamente. Questo è particolarmente utile per le startup. Lo svantaggio è che molto probabilmente gli sviluppatori non capiranno completamente come funziona il codice generato. Per piccoli progetti personali va bene, ma per software di livello produttivo può portare a problemi a lungo termine e debito tecnico.

Ci sono molti strumenti là fuori che rendono il vibe coding più fluido. Cursor IDE, Claude Code CLI, GitHub Copilot, Loveable, Replit, v0 e altri ti permettono di lavorare con l’IA direttamente nel tuo ambiente o forniscono interfacce dedicate al vibe coding. Personalmente, per questi progetti sono rimasto per lo più con Cursor IDE e Claude Code CLI.

Ecco il punto però. Questi strumenti e modelli costano denaro. Con la programmazione tradizionale, paghi soprattutto con il tuo tempo. Con il vibe coding, paghi con il portafoglio. E se non sai quello che stai facendo, paghi sia con il portafoglio sia con il tuo tempo. Ognuno dei progetti in questa pagina costa circa $10 a $20 da realizzare. Se sperimenti molto, la cifra si accumula. Penso che, man mano che questi modelli migliorano e diventano più efficienti, il costo alla fine diminuirà. Per ora, è qualcosa che vale la pena considerare quando decidi se il vibe coding abbia senso per il tuo progetto.

Curioso di capire cosa fosse possibile, ho provato io stesso il vibe coding e ho realizzato questa pagina per esplorare il principio stesso attraverso progetti reali. Non sto solo costruendo prodotti, sto testando e dimostrando di cosa sia davvero capace il vibe coding. Questo è solo per divertimento, ma offre uno sguardo su come potrebbe essere la programmazione in futuro man mano che questi modelli continueranno a migliorare.

Il Teorema della Scimmia Infinita

Scrittore

Hai mai sentito parlare del Teorema della Scimmia Infinita? È un esperimento mentale filosofico che afferma che, se dai scimmie infinite con macchine da scrivere infinite e tempo infinito, alla fine una di loro produrrà le opere complete di Shakespeare semplicemente premendo a caso i tasti.

Sembra ridicolo, vero? Ma ecco la parte sorprendente. Il vibe coding è un po’ così, solo che invece delle scimmie abbiamo modelli di IA, invece delle macchine da scrivere abbiamo linguaggi di programmazione, e invece di Shakespeare otteniamo software funzionante.

Pensa un attimo. I grandi modelli linguistici sono addestrati su miliardi di righe di codice, pattern ed esempi. Quando dai a un LLM un prompt, in realtà non sta “pensando” al tuo problema passo dopo passo come farebbe uno sviluppatore umano. Invece, prevede il token successivo più probabile in base ai pattern imparati durante l’addestramento. In sostanza, sta facendo ipotesi ragionate generando codice in base a ciò che statisticamente sembra corretto.

E in qualche modo, il più delle volte, funziona. Il modello produce codice che effettivamente compila, esegue e risolve il tuo problema. Non attraverso la comprensione, ma attraverso un confronto probabilistico dei pattern su una scala assolutamente enorme. È come se il generatore casuale di testo più sofisticato dell’universo avesse trovato la risposta “giusta”. Ma qui la differenza è la velocità. Quelle scimmie avrebbero bisogno di una letterale infinità. La tua IA? Ci arriva in secondi o minuti.

Quindi, in un certo senso, quando usi il vibe coding, stai sfruttando milioni di linee di pattern di codice, distillati in un modello, per generare soluzioni. Non è risoluzione consapevole dei problemi, è magia statistica. Ed è proprio per questo che è così potente e, ammettiamolo, perché capire cosa faccia realmente il codice resta ancora importante.

La Domanda Conta Più Della Risposta

Ecco qualcosa di importante che spesso viene trascurato. Il vibe coding non riguarda l’ottenere una qualsiasi risposta, ma il porre la domanda giusta. Pensa al Supercomputer Deep Thought da Guida galattica per gli autostoppisti. Ha impiegato milioni di anni per calcolare la risposta alla domanda ultima sulla vita, l’universo e tutto quanto, per poi darti il numero 42. La risposta era tecnicamente corretta, ma inutile perché il vero problema era capire quale domanda porre fin dall’inizio.

Il vibe coding funziona allo stesso modo. I tuoi prompt sono tutto, ma lo è anche la gestione del contesto. Un prompt vago ti darà codice vago, e se non fornisci i file, la documentazione o gli esempi giusti come contesto, il modello non capirà di cosa hai realmente bisogno. Se sei una persona che capisce programmazione, architettura e progettazione dei sistemi, puoi scrivere prompt dettagliati e selezionare il contesto giusto per guidare l’LLM verso soluzioni eccellenti. Ma se non sai cosa chiedere o quale contesto fornire, nemmeno l’IA lo saprà.

In realtà è per questo che il vibe coding è così potente per gli sviluppatori esperti. Sappiamo come appare un buon codice, comprendiamo le insidie e possiamo scrivere prompt che indirizzano il modello lontano da esse. Per i principianti senza background tecnico, questo diventa un limite reale. Potresti ottenere codice funzionante, ma senza capire cosa è andato storto o cosa chiedere dopo, resti bloccato.

Quando Il Vibe Coding Non Basta

I modelli IA più recenti sono impressionanti, ma non sono una soluzione magica. Il vibe coding può funzionare in produzione, ma solo se lo prendi sul serio. Ti servono test unitari robusti. Ti servono fonti di verità chiare su ciò che il tuo sistema dovrebbe fare. Ti serve intercettare quando le cose si rompono o divergono. E ti serve la mentalità da hacker. Pensa fuori dagli schemi e prova a rompere il tuo progetto realizzato con vibe coding in modi imprevisti. Quali casi limite non hai considerato? Quali vulnerabilità di sicurezza potrebbe sfruttare qualcuno? Questo è ciò che separa il codice che semplicemente funziona dal codice che è davvero robusto.

Ecco il punto però. L’IA non ti possiede. Sei tu a possedere l’IA. Non accettare semplicemente ciò che genera. Rivedilo. Testalo. Rompilo. E onestamente, per alcune parti del tuo codice, dovrai tornare alla programmazione tradizionale. Concentrati, pensa profondamente, scrivilo tu stesso. Il vibe coding accelera le cose, ma non sostituisce la programmazione vera quando conta.

C’è un’altra cosa che ho imparato. A volte devi semplicemente chiudere una sessione con l’IA e iniziarne una nuova. Man mano che la cronologia della conversazione diventa sempre più lunga, le prestazioni del modello peggiorano. Fa più errori, genera codice meno coerente e inizia a allucinare più frequentemente. Se non te ne accorgi e non ti fermi, questi errori si accumulano l’uno sull’altro, peggiorando progressivamente la situazione. È come cercare di leggere un documento fotocopiato più e più volte. Ricominciare da capo mantiene tutto pulito e nitido.

Progetti Realizzati Con Vibe Coding

Qui sotto ci sono due progetti, stairs (repo) e transcendental (repo), che ho realizzato usando la metodologia del vibe coding. Generati per lo più da prompt, con lavoro manuale limitato alla fornitura di contesto, al debugging e alla distribuzione su GitLab Pages. Sono esperimenti divertenti di siti statici che mostrano ciò che è possibile quando combini idee creative con il codice attraverso il vibe coding. Entrambi sono ospitati su GitLab.

Visualizza i Progetti

Stairs

Transcendental