Vibe-Uncoding: sfatare il mito della programmazione con

Il vibe-coding è un approccio che utilizza l'intelligenza artificiale, in particolare i Large Language Model (LLM), per generare codice a partire da descrizioni in linguaggio naturale fornite dall'utente. Nonostante la sua utilità, esiste una percezione errata delle sue reali capacità. L'esposizione mediatica e la sopravvalutazione del suo potenziale hanno portato molti a sviluppare idee preconcette che non corrispondono alla realtà.
È importante notare che i modelli linguistici su larga scala si basano su pattern ripetitivi identificati durante l'addestramento su grandi set di dati. Nel contesto della generazione automatica di codice, questi dati provengono in gran parte da repository software accessibili al pubblico, come quelli ospitati su GitHub, una pratica la cui legalità è ancora oggetto di dibattito.
La qualità del codice generato da questi modelli è direttamente correlata alla qualità dei dati che li alimentano. Questa qualità può essere misurata attraverso diverse metriche, tra cui la complessità del codice (che ha un impatto diretto su prestazioni e consumo energetico) e la sua robustezza, che determina la resistenza alle vulnerabilità sfruttabili. Purtroppo, attacchi basati su approcci simili esistono già, soprattutto contro le catene di fornitura di software open source, e si prevede che, nel prossimo futuro, emergeranno attacchi mirati ai dati di training stessi, con l'obiettivo di inserire vulnerabilità intenzionali nel codice prodotto dai modelli di intelligenza artificiale.
Allo stesso tempo, si sta diffondendo la percezione che queste tecnologie rendano obsolete le istituzioni di istruzione superiore, suggerendo che, in futuro, il fattore determinante per il mercato del lavoro sarà la capacità dei professionisti di esprimere, in modo chiaro e strutturato, ciò che intendono programmare, in una logica vicina a quella che oggi è nota come prompt engineering. Questa visione implicherebbe la perdita di rilevanza dell'istruzione superiore per i professionisti altamente qualificati, in particolare nei settori dell'informatica e dell'ingegneria informatica.
Tuttavia, un'analisi attenta di questa premessa rivela un'evidente fallacia, poiché è possibile formalizzare un'idea solo quando si comprende veramente cosa si sta cercando di ottenere. La missione fondamentale dell'istruzione superiore non è quella di ripetere schemi noti. Al contrario, si basa sullo sviluppo di una capacità critica di analisi, unita alla padronanza della teoria alla base di aree scientifiche fondamentali, come matematica, fisica e informatica. Sono proprio questa base teorica e questa capacità critica che consentono l'implementazione e la valutazione consapevole della qualità delle soluzioni tecnologiche, garantendo così la robustezza, l'efficienza e l'affidabilità dei sistemi sviluppati.
È importante comprendere il reale potenziale di questa tecnologia. Contrariamente alla percezione che porterà alla soppressione di posti di lavoro, l'intelligenza artificiale, se utilizzata correttamente, ha la capacità di espandere il mercato aumentando la produttività. In questo senso, questi strumenti dovrebbero essere visti come strumenti ausiliari al servizio di professionisti altamente qualificati, dotati delle competenze necessarie per valutare criticamente i risultati prodotti e, quindi, sfruttarne il vero valore.
D'altro canto, l'uso indiscriminato da parte di individui privi di un'adeguata formazione comporta rischi significativi. La mancanza di capacità critica e tecnica può portare all'accettazione acritica di risultati errati, compromettendo l'efficienza e la sicurezza dei sistemi sviluppati. Questo fenomeno non è nuovo, poiché pratiche come la riproduzione di soluzioni copiate da piattaforme come StackOverflow erano relativamente comuni per anni. La differenza è che, oggigiorno, i pattern vengono generati in modo più automatizzato e personalizzato, richiedendo maggiore attenzione nella loro validazione e applicazione.
Per chi ripone assoluta fiducia in questa tecnologia, vale la pena porsi la seguente domanda: sareste disposti a salire a bordo di un aereo il cui sistema fosse stato sviluppato utilizzando un codice generato dall'intelligenza artificiale?
observador