In qualità di sviluppatori e ingegneri, abbiamo sperimentato un'ampia varietà di strumenti pensati per semplificare il processo di creazione del software. Quando eravamo giovani studenti, utilizzavamo Scratch per creare una pipeline di blocchi che funzionasse con gli scenari "if-this-then-that". A quel tempo non c'erano strumenti di tipo no code a supporto degli utenti che avevano grandi idee ma poca esperienza tecnica nella creazione di un'applicazione. L'ultima innovazione per semplificare lo sviluppo applicativo è quella dei modelli linguistici, capaci di interpretare i comandi in linguaggio naturale (ad esempio: "Sviluppa una app Quarkus con un frontend React per mostrare i ticker di borsa") per automatizzare attività come l'impostazione dei progetti, la generazione del codice e l'esecuzione dei test. Questo approccio è noto come "vibe coding" ed è supportato dagli agenti di IA (o Agentic AI). Il vibe coding è già integrato negli ambienti di sviluppo odierni, ma quali sono le sue implicazioni? Ed è davvero utile ed efficiente?

L'evoluzione dell'assistenza alla scrittura di codice

Il vibe coding permette di interagire con un prompt IA per produrre codice utilizzabile, anche senza avere le competenze tecniche necessarie per programmare in autonomia. Di recente, gli editor di codice hanno registrato importanti cambiamenti. Ne è un esempio GitHub CoPilot, lanciato nell'ottobre del 2021, prima del rilascio dei servizi di modelli linguistici pubblici in stile GPT, che ha avuto una rapida e ampia adozione come strumento per il completamento automatico del codice. Se, ad esempio, dovessi digitare System.out.print, GitHub CoPilot potrebbe completarlo automaticamente con ln("Hello World!"); ma anche così è necessaria qualche competenza nella scrittura di codice affinché CoPilot abbia qualcosa da completare.

Dopo il rilascio di Cursor, un ambiente di sviluppo integrato (IDE) basato sull'intelligenza artificiale, il dibattito sul tema è stato alimentato anche dai leader del settore, come Andrej Karpathy, membro fondatore di OpenAI e primo a coniare il termine "vibe coding".

Cursor, realizzato sulla base del diffuso ambiente IDE di Visual Studio Code, a prima vista è simile a molti altri editor di codice. Il vibe coding descritto da Karpathy, però, permette di descrivere in linguaggio naturale il risultato che si desidera ottenere dal progetto o da una modifica al codice; sarà quindi il backend del modello a suggerire o ad apportare le modifiche in autonomia. Forse lo scenario di utilizzo più comune di Agentic AI è quello in cui un modello ha l'autonomia o l'accesso a strumenti che ne estendono le capacità. Gli strumenti di programmazione assistiti dall'IA possono prevedere la lettura e la scrittura di file, l'accesso online alla documentazione e alle pagine web, l'accesso al terminale per l'esecuzione dei test e altro ancora. 

IDE with additional AI features

Fondamentale per questa funzionalità, tuttavia, è la finestra di contesto estesa per i modelli linguistici, che ha permesso di sfruttare non più centinaia, ma milioni di token alla volta, consentendo al vibe coding di utilizzare l'intera base di codice come contesto in un modello linguistico. Ad esempio, Llama 2 supportava una finestra di contesto da 4.096 token, Llama 3 offriva inizialmente una finestra da 8.192 token e Llama 4 gestisce in modo nativo fino a 10 milioni di token nel proprio contesto. Più ampio è il contesto, maggiori sono le possibilità di utilizzo offerte agli sviluppatori e agli utenti interessati al vibe coding.

Cosa serve sapere prima di utilizzare il vibe coding? 

Non tutti siamo sviluppatori esperti. Molti di noi, tuttavia, sono molto interessati alla tecnologia e al vedere le idee trasformarsi in realtà, senza dover scendere nei dettagli dell'arte della sintassi e del punto e virgola. Strumenti come Cursor ci fanno sperare di poter realizzare un'applicazione utile. Di seguito immagineremo l'esperienza tipica di un utente che vuole utilizzare il vibe coding per capire meglio i punti di forza e le lacune di questa tecnica, e come sfruttarla per migliorare i flussi di lavoro. 

Ho scaricato Cursor dal sito web di Cursor, dove sono disponibili programmi di installazione precompilati per Linux, Mac e Windows. Non sapendo quale fosse il modo migliore per iniziare, ho caricato uno screenshot della schermata iniziale di Cursor in un assistente IA e ho chiesto aiuto. Seguendo le indicazioni fornite, ho creato una cartella in cui archiviare tutti i file di progetto, quindi l'ho aperta utilizzando il pulsante Open project .  

 machine over SSH

 

L'interfaccia di Cursor è simile a quella di VS Code, ma sulla destra è presente una finestra di chat. Grazie all'ambiente di lavoro e ai file attivi aperti a sinistra e alla finestra di chat a destra, l'interfaccia semplifica il flusso di lavoro, ed evita di dover utilizzare Alt+Tab per passare da una finestra all'altra per chattare con il sistema di IA, già integrato nell'editor di codice.

dashboard for Cursor

 

Red Hat promuove e supporta la formazione continua, sia tramite i corsi di formazione e certificazione di Red Hat su container, Kubernetes e GitOps, sia tramite il contributo ai progetti open source. Per questo ho pensato di creare uno strumento di memorizzazione eseguibile in locale, che posso ospitare e condividere con gli altri. 

Il primo prompt che ho inviato è: crea un'app per schede (flashcard) da eseguire nel browser. Volevo avere la possibilità di capovolgere le schede e contrassegnarle come preferite.

Dopo che la mia richiesta è stata elaborata da un modello basato su cloud, Cursor ha prodotto il codice in tre file: 

  • index.html: la struttura della pagina principale
  • style.css: il file di stile e layout
  • script.js: le funzionalità 

Per quasi tutto il processo, non ho fatto altro che premere senza troppo riflettere il tasto accept per ogni file e suggerimento. 

Al termine, ho ottenuto un collegamento alla mia app per le schede, ma purtroppo non funzionava. 

A questo punto mi sono ingegnato un po' per spiegare i problemi nella finestra di chat. Poiché Cursor, come molti modelli moderni, è in grado di elaborare sia le immagini che il testo, ho incluso schermate che spiegano in un linguaggio naturale i punti in cui i flussi si sono bloccati. Dopo qualche tentativo, il codice ha funzionato. 

flashcards application

 

Cursor ha generato un'app completa con schede modificabili, animazioni di capovolgimento fluide, i pulsanti PreviousNext e uno storage permanente. Ho aperto index.html ed è stato possibile eseguire l'app. Benché non sia un'app perfetta (non c'è backend né sincronizzazione tra dispositivi, e per la scalabilità sono necessarie altre competenze), mi è sembrato qualcosa di magico, considerando che l'ho creata con un solo prompt.

Se non hai mai scritto una riga di codice in vita tua, né Cursor né piattaforme simili possono essere sufficienti a realizzare un'applicazione completamente funzionante. Se non se ne comprendono i concetti di base, il codice dell'IA è fragile e può creare problemi nella distribuzione del codice, nella gestione dell'infrastruttura o nella risoluzione dei problemi in un ambiente di produzione. Senza le conoscenze di base, potresti incontrare difficoltà nel tentativo di ridimensionare, proteggere o gestire l'applicazione nella realtà.

In ogni caso, penso che valga la pena provare, indipendentemente dal tuo livello di esperienza. Per i neofiti può essere complicato, perché ci sono diversi modi per eseguire le attività e se non si ha familiarità con i concetti di base del comportamento del terminale (come digitare la password del computer senza vederla o premere Y per confermare), fare errori è facile. Consiglio ai principianti di inserire gli screenshot in Cursor quando non si riesce a spiegare dove si è rimasti bloccati e di utilizzare un altro chat bot per spiegare ciò che Cursor presuppone sia già noto e per capire meglio cosa chiedere. Questa tecnica è ormai molto diffusa, tanto che esiste un termine che indica l'arte di sapere cosa chiedere all'IA: ingegneria dei prompt, ovvero saper formulare in modo efficace una domanda o una richiesta affinché il modello restituisca il risultato desiderato. 

La realtà del vibe coding

Gli strumenti di programmazione dell'IA e l'arte del vibe coding renderanno la programmazione sempre più accessibile. Come per qualsiasi altra competenza, attività o professione appresa, i tentativi e gli errori sono molto utili. Molti sviluppatori ricordano chiaramente le sessioni di debug, i problemi con le versioni di Python o Java e gli SDK o l'esecuzione dei passaggi. Produrre codice è un conto, ma produrre codice valido è un'altra questione. Considerate le modalità di addestramento dei modelli linguistici, parte del loro set di dati può includere risposte imprecise o codice non valido o obsoleto e l'utente medio non è in grado di riaddestrare un modello da solo.

La risposta è investire su se stessi. Red Hat offre corsi di formazione pratica sull'IA e sulle tecnologie di base come Linux e Kubernetes. Nel mondo dell'IA, c'è un futuro solido per il vibe coding e per il potenziamento delle funzionalità dell'IA con la programmazione tradizionale. È come compiere un esercizio di "rubber duck debugging", una tecnica diffusa che prevede che uno sviluppatore spieghi verbalmente un problema o un'intenzione a una paperella di gomma, per imporre al proprio cervello di analizzare un problema in modo obiettivo. La differenza è che con l'IA la paperella di gomma è in grado di rispondere!

Prova prodotto

Red Hat Enterprise Linux AI | Versione di prova

Scarica la versione di prova gratuita di 60 giorni di Red Hat Enterprise Linux AI, una piattaforma ottimizzata per l'esecuzione di LLM.

Sugli autori

Legare Kerrison is a Technical Marketing Manager and Developer Advocate working on Red Hat's Artificial Intelligence offerings. She is passionate about open source AI and making technical knowledge accessible to all. She is based out of Boston, MA.

Cedric Clyburn (@cedricclyburn), Senior Developer Advocate at Red Hat, is an enthusiastic software technologist with a background in Kubernetes, DevOps, and container tools. He has experience speaking and organizing conferences including DevNexus, WeAreDevelopers, The Linux Foundation, KCD NYC, and more. Cedric loves all things open-source, and works to make developer's lives easier! Based out of New York.

UI_Icon-Red_Hat-Close-A-Black-RGB

Ricerca per canale

automation icon

Automazione

Novità sull'automazione IT di tecnologie, team e ambienti

AI icon

Intelligenza artificiale

Aggiornamenti sulle piattaforme che consentono alle aziende di eseguire carichi di lavoro IA ovunque

open hybrid cloud icon

Hybrid cloud open source

Scopri come affrontare il futuro in modo più agile grazie al cloud ibrido

security icon

Sicurezza

Le ultime novità sulle nostre soluzioni per ridurre i rischi nelle tecnologie e negli ambienti

edge icon

Edge computing

Aggiornamenti sulle piattaforme che semplificano l'operatività edge

Infrastructure icon

Infrastruttura

Le ultime novità sulla piattaforma Linux aziendale leader a livello mondiale

application development icon

Applicazioni

Approfondimenti sulle nostre soluzioni alle sfide applicative più difficili

Virtualization icon

Virtualizzazione

Il futuro della virtualizzazione negli ambienti aziendali per i carichi di lavoro on premise o nel cloud