Programmazione Vibe

Miniatura

Che cos’è la programmazione vibe?

programmazione vibe è un metodo di programmazione potenziato dall’IA introdotto da Andrej Karpathy nel 2024/2025. Con la programmazione vibe descrivi ciò che vuoi tramite prompt in linguaggio naturale e solitamente i modelli di linguaggio di grandi dimensioni (LLM) generano la maggior parte, spesso tutto, il codice funzionante per te. Se hai tempo, dai un’occhiata a L’arte della programmazione vibe adattata da Rick Rubin per saperne di più sulla via della programmazione vibe.

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 gli sviluppatori molto probabilmente non comprenderanno appieno come funziona il codice generato. Per piccoli progetti secondari va bene, ma per software a livello di produzione può portare a problemi a lungo termine e debito tecnico.

Esistono molti strumenti che rendono la programmazione vibe più fluida. 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 per la programmazione vibe. Personalmente, ho usato principalmente Cursor IDE e Claude Code CLI per questi progetti.

Però c’è una cosa. Questi strumenti e modelli costano denaro. Con la programmazione tradizionale paghi principalmente con il tuo tempo. Con la programmazione vibe paghi con il tuo portafoglio. E se non sai cosa stai facendo, paghi sia con il portafoglio sia con il tempo. Ciascuno dei progetti in questa pagina costa circa $10 a $20 per essere costruito. Fa sommarsi se stai sperimentando molto. Penso che man mano che questi modelli miglioreranno e diventeranno più efficienti, il costo finirà per diminuire. Per ora, è qualcosa da considerare quando decidi se la programmazione vibe abbia senso per il tuo progetto.

Curioso di sapere cosa è possibile, ho provato la programmazione vibe personalmente e ho creato questa pagina per esplorare il principio stesso attraverso progetti reali. Non sto solo costruendo prodotti, sto testando e dimostrando cosa la programmazione vibe è veramente capace di fare. È solo per divertimento, ma offre uno sguardo su come potrebbe apparire la programmazione in futuro man mano che questi modelli continuano a migliorare.

Teorema della scimmia infinita

Scrittore

Hai mai sentito parlare del Teorema della scimmia infinita? È un esperimento mentale filosofico che dice che se dai scimmie infinite macchine da scrivere infinite e tempo infinito, alla fine una di esse produrrà le opere complete di William Shakespeare semplicemente battendo a caso sui tasti.

Suona ridicolo, vero? Ma ecco la parte folle. La programmazione vibe è un po’ così, tranne che invece delle scimmie abbiamo modelli di IA, invece delle macchine da scrivere abbiamo linguaggi di programmazione, e invece di Shakespeare otteniamo software funzionante.

Pensaci. I modelli di linguaggio di grandi dimensioni sono addestrati su miliardi di righe di codice, schemi ed esempi. Quando dai a un LLM un prompt, non sta veramente “pensando” al tuo problema passo dopo passo come farebbe uno sviluppatore umano. Invece prevede il token successivo più probabile basandosi sugli schemi che ha appreso durante l’addestramento. Sta essenzialmente facendo supposizioni informate generando codice in base a ciò che statisticamente sembra corretto.

E in qualche modo, più spesso che no, funziona. Il modello produce codice che in realtà compila, viene eseguito e risolve il tuo problema. Non tramite comprensione, ma tramite corrispondenza di schemi probabilistica su scala assolutamente massiccia. È come se il generatore di testo casuale più sofisticato dell’universo avesse trovato la risposta “giusta”. Ma qui la differenza è la velocità. Quelle scimmie avrebbero bisogno della pura infinità. La tua IA? Ci arriva in secondi o minuti.

Quindi in un certo senso, quando usi la programmazione vibe, stai sfruttando milioni di righe di schemi di codice, distillati in un modello, per generare soluzioni. Non è risoluzione di problemi cosciente, è magia statistica. Ed è proprio per questo che è così potente e, ammettiamolo, che comprendere cosa fa effettivamente il codice continua a essere importante.

La domanda conta più della risposta

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

La programmazione vibe 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à cosa ti serve davvero. Se sei qualcuno che capisce di programmazione, architettura e progettazione di sistemi, puoi creare prompt dettagliati e curare il contesto giusto per guidare il LLM verso ottime soluzioni. Ma se non sai cosa chiedere o quale contesto fornire, neanche l’IA lo saprà.

Questo è in realtà il motivo per cui la programmazione vibe è così potente per sviluppatori esperti. Noi sappiamo che aspetto ha un buon codice, comprendiamo le insidie e possiamo scrivere prompt che indirizzino il modello lontano da esse. Per i principianti senza background tecnico, questo diventa una vera limitazione. Potresti ottenere codice funzionante, ma senza capire cosa è andato storto o cosa chiedere dopo, resti bloccato.

Quando la programmazione vibe non è sufficiente

I modelli di IA più recenti sono impressionanti, ma non sono una bacchetta magica. La programmazione vibe può funzionare in produzione, ma solo se ne sei serio. Hai bisogno di test unitari robusti. Hai bisogno di sorgenti di verità chiare su cosa il tuo sistema dovrebbe fare. Devi cogliere quando le cose si rompono o deragliano. E hai bisogno della mentalità dell’hacker. Pensa fuori dagli schemi e prova a rompere il tuo progetto programmato con vibe in modi inaspettati. 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 è effettivamente robusto.

Però ecco la cosa. L’IA non ti possiede. Sei tu a possedere l’IA. Non accettare semplicemente ciò che genera. Revisionalo. Testalo. Rompilo. E onestamente, per alcune parti della tua base di codice, dovrai tornare alla programmazione alla vecchia maniera. Concentrati, pensa profondamente, scrivilo tu stesso. La programmazione vibe accelera le cose, ma non è un sostituto della programmazione reale quando conta.

C’è un’altra cosa che ho imparato. A volte devi semplicemente terminare una sessione con l’IA e iniziarne una nuova. Man mano che la cronologia della conversazione cresce, le prestazioni del modello degradano. 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 compongono l’uno sull’altro, peggiorando progressivamente le cose. È come cercare di leggere un documento che è stato fotocopiato più e più volte. Ricominciare da zero mantiene le cose pulite e nitide.

Progetti programmati con vibe

Di seguito ci sono due progetti, Scale (repo) e Trascendentale (repo), che ho costruito usando la metodologia della programmazione vibe. Per lo più generati da prompt, con lavoro manuale limitato alla fornitura del contesto, al debug e al deployment su Pagine GitHub. Sono divertenti esperimenti di siti statici che mostrano cosa è possibile quando combini idee creative con codice tramite la programmazione vibe. Entrambi sono ospitati su GitHub.

Visualizza Progetti

Scale

Trascendentale