Vibe Coding: la presa di coscienza tra codice e intelligenza artificiale—Imparare l'AI162
Parole del traduttore
- L’essenza del “Vibe Coding” è accumulare debito tecnologico a velocità AI.
- La programmazione AI è una spada a doppio taglio: ottima per i prototipi, ma per i progetti core a lungo termine, è l’inizio di un disastro.
- Consentire a chi non ha competenze tecniche di sviluppare prodotti chiave con l’AI è come dare a un bambino una carta di credito illimitata: un’apparente meraviglia, che si traduce in debiti eterni.
- La chiave per domare l’AI non è rinunciare al pensiero critico, ma piuttosto potenziare la capacità di “costruire teoria”. L’essere umano deve essere il padrone delle redini, non lasciarsi guidare dall’AI.
“Vibe Coding” crea debito tecnologico
Steve Krouse
Nonostante la confusione generale, la creazione del termine “Vibe Coding” da parte di Andrej Karpathy si riferisce essenzialmente a un approccio di programmazione assistita dall’AI, in cui si può addirittura “non percepire la presenza del codice”.
Codice obsoleto/debito tecnologico
Per quei codici che nessuno riesce a comprendere, abbiamo già un termine: codice obsoleto/debito tecnologico.
Il codice obsoleto è universalmente disprezzato, e non è una critica infondata. Ma qual è il problema? Il codice è lì, quindi non basta guardarlo per capirlo?
Sbagliato. Un codice incomprensibile è un vero e proprio debito tecnologico. Comprendere e fare il debug di una sezione di codice sconosciuto richiede tempo considerevole, per non parlare dell’aggiunta di nuove funzionalità senza introdurre bug — un’impresa ancora più difficile.
La programmazione consiste essenzialmente nel costruire teoria, non solo nel sovrapporre codice. Lo sappiamo tutti. Ecco perché critichiamo quei dipartimenti aziendali che tentano di quantificare la produttività dei programmatori tramite il numero di righe di codice.
Quando utilizzi il “Vibe Coding”, accumuli debito tecnologico alla stessa velocità con cui l’AI genera codice. Per questo, “Vibe Coding” è la scelta perfetta per lo sviluppo di prototipi e progetti una tantum: perché solo il codice che necessita di manutenzione a lungo termine diventerà obsoleto!
Prototipi e codice una tantum
Anch’io ho usato con piacere il “Vibe Coding” per sviluppare alcune piccole applicazioni, come:
- Calcolare il tasso di crescita settimanale
- Valutare il gioco Connections del New York Times
- Chiedere la mano alla mia fidanzata
Non avevo l’intenzione di continuare a iterare su queste applicazioni, quindi non mi preoccupava non capire il loro codice. Inoltre, trattandosi di applicazioni di piccole dimensioni, anche se un giorno fosse necessario tornare a rivedere il codice, il debito tecnologico accumulato sarebbe limitato. In questo modo, ho potuto sviluppare applicazioni a una velocità che supera di gran lunga i metodi tradizionali, e il processo è stato davvero appagante.
“Vibe Coding” è una questione di grado
Il “Vibe Coding” è una questione di grado, a seconda di quanto profondamente comprendi il codice. Più lo comprendi, meno agisci “sulla sensazione”.
Nell’esprimere una richiesta, un ingegnere che chiede lo sviluppo di “un’applicazione Web con database persistente” e una persona non tecnica che dice “crea un’app” (senza distinguere tra applicazioni Web e native, e senza comprendere la persistenza dei dati) è certamente in una condizione di “sensazione” molto diversa.
Dare una carta di credito a un bambino
La situazione peggiore è consentire a un non programmatore di usare il “Vibe Coding” per sviluppare un grande progetto che necessiti di manutenzione a lungo termine. È come dare una carta di credito a un bambino, senza spiegare cosa sia il “debito”.
È facile immaginare la gioia nelle fasi iniziali: “Oh, basta semplicemente passare questa piccola carta alla cassa e otterrò ciò che voglio!”
Questo ricorda molto il discorso attuale: “L’AI può fare tutto! Ognuno è un programmatore! Guarda cosa ha generato l’AI per me!”
Tuttavia, dopo un mese, arriverà puntuale la bolletta della carta di credito: “Avevo davvero bisogno di acquistare quelle cose? Come posso risolvere questa situazione complicata?”
Così, anche i programmatori che utilizzano il “Vibe Coding” si trovano di fronte a un simile imbarazzo: “Il mio codice è andato in crash! A cosa servono tutti questi file e cartelle? Come posso ripararlo? Posso riavere i 400 dollari spesi per far generare codice all’AI?”
Se non riesci affatto a capire il codice, l’unica soluzione è lasciare che l’AI continui ad aiutarti a correggerlo. Questo equivale a “pagare con la carta”, utilizzando un nuovo limite di credito per ripagare un debito preesistente.
Come programmare seriamente con l’AI nel 2025
Se intendi costruire un progetto serio che richieda manutenzione a lungo termine nel 2025, il consiglio di Andrej è appropriato:
Devi trattare l’AI come un tirocinante appena arrivato, tenendolo legato con una corda molto corta. Questo tirocinante è un genio e conosce a menadito i software, è come un enciclopedia vivente. Tuttavia, è anche eccessivamente entusiasta, sempre pronto a dire sciocchezze, e senza alcun gusto per quello che è codice di qualità. Pertanto, devi sottolineare: rallenta, mantieni la guardia alta, sii accorto e anche un po’ paranoico. Approfitta di ogni opportunità per imparare attraverso la pratica, invece di cedere tutto il lavoro a lui.
— Andrej Karpathy, twitter
Come abbracciare l’AI per costruire
In Val Town, abbiamo già integrato l’AI nei nostri prodotti in molti modi. Il nostro assistente AI, Townie, funziona come un agente intelligente, in grado di leggere e scrivere codice, eseguire programmi, controllare log e iterare continuamente fino al completamento del compito.
Townie è uno strumento eccellente per il “programmare sulla sensazione”. Lo consiglio vivamente a chi comprende gli intricati pro e contro. A volte, lo utilizzo per un veloce “Vibe Coding”; mentre per i progetti a cui tengo particolarmente, tiro le redini e lo faccio adottare modifiche “chirurgiche” di precisione. Entrambi gli approcci sono sia divertenti che efficienti.
Il campo della programmazione AI è in rapida evoluzione, e il futuro è difficile da prevedere. Ma sono fiducioso che “costruire teoria” rimarrà il fulcro della creazione di software complesso. Questo significa che le competenze tecniche umane saranno sempre indispensabili! Inoltre, sono ottimista nel credere che l’AI continuerà a rendere il lavoro di programmazione un’esperienza di grande valore.
Tuttavia, se hai amici privi di background tecnico che spendono soldi a palate per sviluppare il loro “app da un miliardo” con il “programmare sulla sensazione”, assicurati di condividere questo articolo con loro. “Programmare sulla sensazione” non li porterà al successo. Prima o poi, dovranno imparare a comprendere il codice con i propri occhi 😱, e alla fine realizzeranno una verità cruda: è meglio partire da zero per costruire un nuovo codice chiaro e strutturato piuttosto che riparare un sistema obsoleto incomprensibile.
Questo articolo è una versione sintetizzata di un discorso che ho tenuto il mese scorso, il cui tema era il ruolo del cervello umano nella programmazione. Ringrazio la mia fidanzata Emily per avermi ascoltato incessantemente su questi argomenti e per aver ripreso il video del mio intervento. Grazie a Malte e Rippling per aver organizzato questo discorso.
Un grazie a Geoffrey Litt, Jimmy Koppel, Max McDonnell, Tom MacWright, Charmaine Lee, Brent Jackson e Dan Shipper per i loro feedback su questo articolo. Un ringraziamento anche a Simon Willison e Andrej Karpathy per aver portato una voce razionale tra l’esaltazione e il pessimismo riguardo l’AI.
Fonte originale: https://blog.val.town/vibe-code