Mentre il CEO di OpenAI, Sam Altman, anticipa le capacità di scrittura creativa di un futuro modello OpenAI, molti sviluppatori e ingegneri del software stanno adottando un approccio chiamato "vibe coding". L'espressione è nata solo sei settimane fa, ma continua a suscitare dibattiti su Reddit e su vari canali Slack, e anche qui in IBM®.
In parole semplici, il vibe coding è un termine che Andrej Karpathy, co-fondatore di OpenAI ed ex Senior Director di Tesla AI, ha usato per descrivere il modo in cui gli LLM sono diventati bravi nel ragionamento e nella codifica. (Pensa a Claude Sonnet o all'editor di codice AI Cursor). Ora, ha scritto su X, gli sviluppatori possono "lasciarsi trasportare dall'atmosfera, adottare le esponenziali e dimenticare persino che il codice esista". Come dice Ars Technica: "Invece di concentrarsi sul controllo e sulla precisione, il vibe coding si incentra sull'abbandonarsi al flusso".
Joshua Noble, Technical Strategist di IBM, afferma di credere che il vibe coding sia nato come uno scherzo. Ma l'espressione è rimasta, e l'incubatore Y Combinator ha persino creato un video di 30 minuti intitolato "Il vibe coding è il futuro".
Il vibe coding potrebbe rappresentare il futuro, ma oggi è ancora imperfetto. "Penso che sia più che altro come se fossi senza idee, o se ti sentissi pigro, e lasciassi che CoPilot faccia un po' le cose per te e vedessi dove ti porta", dice Noble. "Vedo cose, dico cose, eseguo cose e copio e incollo cose, e per lo più funziona."
Ash Minhas, responsabile dei contenuti tecnici presso IBM, concorda: "il vibe coding è una realtà", afferma. "È come se potessi prendere ispirazione e trasformarla in qualcosa." Per illustrare il suo punto, Minhas racconta che lui e suo fratello hanno ideato un prompt per creare un'app che aiuta gli utenti a trovare il loro numero FIRE (Financial Independence, Retire Early). "Se hai competenze tecniche, è fantastico", afferma.
Ora che l'AI è arrivata in quasi ogni aspetto dell'economia, potrebbe sconvolgere il lavoro di sviluppatori e ingegneri software? La possibilità di utilizzare gli LLM per programmare, eseguire il debug o effettuare test potrebbe migliorare molte operazioni, afferma Shalini Harkar, Lead AI Advocate presso IBM con sede a Bangalore.
"Oggi gli sviluppatori si concentrano maggiormente sulla risoluzione di problemi complessi reali che hanno un grande impatto nella vita reale, sviluppando progetti architettonici efficienti, abilitando strategie di go-to-market più rapide e favorendo l'innovazione piuttosto che compiti di routine", spiega.
Michael (Max) Maximilien, Distinguished Engineer di IBM, chiede ancora al suo team di eseguire test manuali sul codice. "Ma sempre più spesso non è più necessario scrivere il test", afferma. "In realtà puoi semplicemente scrivere il codice e poi chiedere all'LLM di scrivere il test per te, e il risultato è soddisfacente nella maggior parte dei casi. E all'improvviso hai migliorato significativamente la tua produttività."
In aggiunta a questo aumento di efficienza, l'AI può aiutare gli sviluppatori meno esperti a mettere a punto le proprie competenze e acquisire esperienza a un ritmo molto più veloce. "Può dire: 'Ecco cosa sto cercando di fare' e scrive la prima versione del codice", dice Maximilien. "[Poi] lo aggiusti e continui a lavorare, giusto? Questa è l'accelerazione."
A questo stadio iniziale, il vibe coding è ancora una sorta di battuta interna degli sviluppatori: una forma d'arte riservata agli intenditori di codice. Ma potrebbe anche essere un segnale del fatto che siamo pronti a ridefinire cosa significa collaborare con l'AI nel campo dell'informatica e dell'ingegneria software.
Per alcuni osservatori, il futuro della tecnologia potrebbe includere anche più connessioni tra umani e macchine. "Il futuro della codifica darà priorità alla natural language understanding, agli algoritmi consapevoli delle emozioni e all'analisi del sentimento in tempo reale, rendendo le interazioni uomo-computer più intuitive," afferma Vrunda Gadesha, Technical Content Writer presso IBM.
E mentre gli esseri umani saranno sempre parte integrante del processo, l'AI rende la parte di codifica molto più semplice. "Una complessa ingegneria software richiederà sempre che un umano, a un certo punto del processo, si occupi dell'ottimizzazione o di logiche aziendali o casi edge molto specifici", afferma Noble. "Ma quando pensiamo alla codifica, semplicemente 'Scriverò un codice per un app che faccia questo', la quantità di lavoro che puoi far svolgere a un modello linguistico di grandi dimensioni è davvero in aumento. E questo è davvero emozionante."
Un servizio single-tenant completamente gestito per lo sviluppo e la distribuzione di applicazioni Java.
Utilizza il software e gli strumenti DevOps per creare, distribuire e gestire app cloud-native su più dispositivi e ambienti.
Lo sviluppo di applicazioni cloud significa programmare una volta, iterare rapidamente e distribuire ovunque.