Vibe Coding tra strumenti innovativi e problemi di sicurezza

Nel contesto attuale di sviluppo software, l’adozione dell’IA generativa sta ridefinendo il modo in cui concepiamo la scrittura del codice. Tra le metodologie emergenti, il vibe coding si distingue per un approccio radicale: invece di digitare manualmente sintassi e strutture, lo sviluppatore dialoga con un LLM in linguaggio naturale, delegando all’AI la generazione automatica delle funzionalità richieste.

Questa filosofia di coding rischia però di generare un enorme debito tecnico e di creare applicazioni e software vulnerabili e facilmente attaccabili, dalle dubbie performance e equipaggiate di feature mal progettate e mal distribuite.

Che cos’è il Vibe Coding?

Il vibe coding è un approccio emergente nello sviluppo software che affida la scrittura del codice a sistemi di intelligenza artificiale generativa. Invece di concentrarsi sulla sintassi, sulla struttura del codice o sui dettagli tecnici tipici della programmazione tradizionale, il vibe coder interagisce con l’AI descrivendo l’obiettivo che desidera raggiungere con la propria applicazione.

Il termine è stato coniato da Andrej Karpathy (co-Founder di OpenAI) nel febbraio 2025, che in un tweet lo ha descritto come

Un nuovo modo di programmare in cui ci si abbandona completamente alle vibrazioni, si abbracciano le potenzialità e si dimentica che il codice esista.

Karpathy ha raccontato di affidare all’AI anche i compiti più banali — come ridurre il padding di un elemento — per pura pigrizia. Ha inoltre ammesso di accettare sistematicamente tutte le modifiche suggerite dall’AI senza nemmeno revisionare le differenze e di risolvere eventuali problemi semplicemente incollando i messaggi di errore nell’AI stessa.

In poche settimane, il concetto di vibe coding è passato dai social media alle pagine di testate tech autorevoli ed è stato persino inserito nel dizionario Merriam-Webster come “buzzword tecnologica dell’anno”.

È importante però fare una distinzione: non tutta la programmazione assistita dall’AI può essere definita vibe coding. Nella pratica professionale, gli sviluppatori utilizzano modelli linguistici di grandi dimensioni (LLM) come strumenti per semplificare e automatizzare i compiti ripetitivi, mantenendo però un controllo rigoroso sul codice prodotto. Questo significa analizzare le proposte dell’AI, comprenderle, testarle accuratamente e valutarle in termini di performance, sicurezza e manutenibilità. Al contrario, il vibe coding, nella sua accezione più radicale, implica accettare il codice generato senza necessariamente comprenderlo a fondo, abbracciando una filosofia di “scrivi prima, rifinisci dopo”. L’obiettivo non è la perfezione sintattica o l’aderenza a uno stack tecnologico specifico, ma la velocità di prototipazione e la capacità di iterare rapidamente sulle idee, concentrandosi sulla risoluzione del problema anziché sulla scrittura del codice.

> Leggi anche: “AI Coding: sicurezza e strumenti Open Source per generare codice”

Vibe, vibe coding, vibrazioni

Strumenti di Vibe Coding

Il vibe coding si sta rapidamente diffondendo anche grazie a una nuova generazione di strumenti e piattaforme che integrano l’intelligenza artificiale generativa direttamente negli ambienti di sviluppo. Ecco i principali strumenti che supportano questo approccio:

  • Cursor. Uno dei primi strumenti concepiti specificamente per il vibe coding. Nato come semplice assistente di completamento del codice via chat, Cursor ha poi lanciato Composer, una funzione che permette di chiedere direttamente agli agenti AI modifiche al codice. Supporta inoltre server MCP (Model Context Protocol) per orchestrare prompt AI sui servizi esterni. Cursor offre due modalità operative: la classica e la modalità Agente, in grado di eseguire comandi complessi e catene di operazioni in autonomia. Tra le funzionalità utili, Fix with AI, che consente di risolvere errori direttamente tramite AI.
  • Windsurf propone un’esperienza utente più fluida rispetto a Cursor, mantenendo però funzionalità AI molto simili. Supporta server MCP e integra una modalità di anteprima dell’applicazione direttamente all’interno dell’editor di codice, ideale per iterazioni rapide in ottica vibe coding.
    Replit: una piattaforma di sviluppo online (IDE via browser) che ha abbracciato appieno il coding assistito dall’AI. Grazie a funzionalità come Ghostwriter AI, gli utenti possono generare, spiegare e distribuire applicazioni scrivendo semplici prompt in linguaggio naturale. Particolarmente apprezzata da no coder e sviluppatori alle prime armi per la sua intuitività e immediatezza.
  • GitHub Copilot: sviluppato da GitHub in collaborazione con OpenAI, è forse lo strumento più noto nel panorama dello sviluppo AI-assisted. Originariamente nato come sistema di autocompletamento avanzato, Copilot è evoluto in un vero pair programmer AI. Include ora Copilot Chat, una modalità conversazionale per richiedere codice, spiegazioni e refactoring in linguaggio naturale, funzione che rende lo strumento perfettamente compatibile con il paradigma del vibe coding.
  • Lovable.dev: pensato soprattutto per low-code e no-code developer, Lovable.dev è uno strumento full-stack AI che consente di costruire e pubblicare intere applicazioni tramite prompt. Una caratteristica distintiva è la possibilità di selezionare sezioni specifiche di un’app o pagina web e chiedere all’AI modifiche mirate. È integrato con Supabase per gestire autenticazione e operazioni CRUD, oltre a supportare la connessione diretta a repository GitHub.

Problemi di sicurezza e altre criticità del vibe coding

L’adozione del vibe coding porta con sé numerose sfide, critiche e preoccupazioni che è fondamentale considerare per evitare sorprese durante lo sviluppo, il processo di delivery e la manutenzione del software. Di seguito analizziamo in dettaglio le principali aree di criticità.

  1. Comprensione e Manutenibilità del Codice. Una delle logiche principali del vibe coding è l’abbandono del controllo diretto sulla sintassi e sulla struttura del codice, delegando interamente la scrittura agli LLM. Ma accettare codice senza leggerne le logiche interne può far nascere frammenti di software di cui nessuno, nemmeno chi li ha generati, conosce davvero il funzionamento. Inoltre, quando arriva il momento di aggiornare l’applicazione, gli sviluppatori si trovano a dover interpretare e decifrare porzioni di codice non documentate, aumentando di conseguenza tempi e costi di intervento. Senza una revisione puntuale e commenti chiari, infine, diventa quasi impossibile sfruttare appieno sistemi di controllo di versione come Git, riducendo la tracciabilità delle modifiche.
  2. Vulnerabilità e Qualità del Software. Il codice generato dagli agenti AI può ereditare punti deboli presenti nei repository pubblici da cui i modelli hanno appreso. In particolare, gli snippet prelevati online potrebbero nascondere backdoor, logiche non sicure o dipendenze vulnerabili ed esporre dati sensibili. L’automazione e la generazione incontrollata di codice rischia di dare un falso senso di sicurezza: senza suite di test dedicate e revisione manuale, le vulnerabilità non emergono fino alla fase di produzione.
  3. Debugging e Gestione degli Errori. Gli LLM si dimostrano validi per risolvere errori semplici (ad esempio fornendo l’errore come prompt), ma quando sorgono problemi complessi gli strumenti di AI possono fare ben poco. Inoltre, il debug del codice generato dall’AI può essere impegnativo perché è dinamico e manca di una struttura architetturale chiara.
  4. Collaborazione e Dipendenza Tecnologica. Il vibe coding favorisce un rapporto diretto tra sviluppatore e AI, ma rischia di atrofizzare la capacità degli sviluppatori di lavorare in modo indipendente. Affidarsi costantemente agli LLM indebolisce infatti le capacità analitiche e di debugging degli sviluppatori, che possono trovarsi in difficoltà se il modello non risponde come previsto. Il codice generato inoltre spesso manca di documentazione, di stile consistente e di chiarezza organizzativa: team diversi potrebbero quindi seguire convenzioni stilistiche incongrue, generando conflitti su naming convention, pattern architetturali e documentazione.
  5. Debito Tecnico e Performance Inefficienti. Il codice non ottimizzato o ridondante rende onerosi i refactoring futuri. Inoltre, non tutti i framework o le pipeline di deployment supportano agevolmente soluzioni generate dagli LLM, comportando workaround complessi.

> Scopri il corso di Secure Coding 

Nonostante queste criticità, il vibe coding rimane un approccio valido per prototipazione rapida, proof of concept e progetti a basso impatto, grazie alla sua capacità di abbattere barriere tecniche

Fonti:

Codemotion. (2025, April 10). L’ascesa del Vibe Coding: oltre il clamore e le critiche. Codemotion Magazine. https://www.codemotion.com/magazine/it/intelligenza-artificiale/lascesa-del-vibe-coding-oltre-il-clamore-e-le-critiche/

Frenkel, B. (2025). Vibe Coding: Shipping Features or Shipping Vulnerabilities? | Oligo Security. Oligo.security. https://www.oligo.security/blog/vibe-coding-shipping-features-or-shipping-vulnerabilities

Kumar, M. (2025, March 30). A Comprehensive Guide to Vibe Coding Tools – Madhukar Kumar – Medium. Medium. https://madhukarkumar.medium.com/a-comprehensive-guide-to-vibe-coding-tools-2bd35e2d7b4f

McNulty, N. (2025, February 23). Vibe Coding – Niall McNulty – Medium. Medium. https://medium.com/@niall.mcnulty/vibe-coding-b79a6d3f0caa

Palmer, M. (2025, March 26). Replit — What is Vibe Coding? How To Vibe Your App to Life. Replit Blog. https://blog.replit.com/what-is-vibe-coding

Sergei Vorniches. (2025, March 14). Vibe Coding? Yeah, I’ve Been Doing It for Two Years. DEV Community. https://dev.to/vorniches/vibe-coding-yeah-ive-been-doing-it-for-two-years-ea2

Shalini Harkar. (2025, April 8). Vibe Coding. Ibm.com. https://www.ibm.com/think/topics/vibe-coding

Vannini, W. (2025, April 16). Vibe coding: programmare con le vibrazioni e altre tragedie digitali. Agenda Digitale. https://www.agendadigitale.eu/cultura-digitale/vibe-coding-programmare-con-le-vibrazioni-e-altre-tragedie-digitali/

Vibe Coding: The Future of Software Development or Just a Trend? (2025, March). Lovable. https://lovable.dev/blog/what-is-vibe-coding

Willison, S. (2025). Not all AI-assisted programming is vibe coding (but vibe coding rocks). Simon Willison’s Weblog. https://simonwillison.net/2025/Mar/19/vibe-coding/