Sono finiti i giorni in cui gli sviluppatori di software avrebbero dovuto scrivere un milione di righe di codice.
Le piattaforme di codifica automatica sono ora in prima linea nelle tecnologie emergenti per i programmatori, offrendo un’alternativa basata sull’intelligenza artificiale per sfornare un gran numero di frammenti di codice. Questo progresso, stimolato dalla piattaforma GitHub Copilot di Microsoft , ha cambiato il paradigma per gli sviluppatori di tutto il mondo.
Man mano che questi algoritmi in continuo miglioramento iniziano ad assumere più attività di codifica, gli sviluppatori stanno lentamente perdendo la capacità di codificare. Molte alternative passate alla codifica, come le piattaforme no-code e low-code, si adattavano bene agli utenti non tecnici, attirando l’ira dei cosiddetti “codificatori hardcore”. Tuttavia, anche il veterano più esperto della codifica trarrà vantaggio da un algoritmo di codifica automatica in quanto ridurrà notevolmente la quantità di codice che uno sviluppatore deve effettivamente digitare.
Andrej Karpathy, l’ex direttore dell’IA di Tesla e OpenAI, ha catturato perfettamente questo sentimento con il suo tweet, dove ha detto :
“Copilot ha notevolmente accelerato la mia codifica, è difficile immaginare di tornare alla “codifica manuale”. Sto ancora imparando a usarlo ma scrive già ~ 80% del mio codice, ~ 80% di precisione. Non codifico nemmeno veramente, chiedo. & modificare.”
Questo sentimento è ripreso dalla maggior parte dello spazio degli sviluppatori, poiché le piattaforme di codifica automatica liberano tempo che può essere utilizzato per lavorare su altre parti dell’applicazione. Le piattaforme di codifica automatica sono state adottate con una velocità allarmante, come dimostrato dal lancio di GitHub Copilot, che ha attirato 400.000 abbonamenti paganti in un mese. Con l’adozione diffusa di queste piattaforme, la domanda rimane; gli sviluppatori hanno dimenticato come programmare?
Erodendo la conoscenza della codifica
Siamo onesti, chiunque abbia utilizzato Copilot sa che completa automaticamente il codice che è tutt’altro che perfetto. Sebbene la sintassi dei frammenti di codice suggeriti potrebbe non avere problemi, è scritta in modo non efficiente che potrebbe causare problemi con le dipendenze. Aryamaan, un utente del forum di notizie YCombinator, ha detto questo sull’utilizzo di “Ghostwriter”, una piattaforma di codifica automatica offerta da Replit.
“Mi ha sconvolto la metà delle volte. Era come se sapesse cosa avrei fatto. Le altre volte era più stupido del completamento automatico standard. Non ha alcuna consapevolezza delle variabili già definite e non le usa per completare variabili scritte a metà.”
Questi tipi di risposte alle piattaforme di codifica automatica sono sempre presenti. D’altra parte, queste piattaforme si basano su algoritmi di intelligenza artificiale, il che significa che miglioreranno solo con il tempo. Per i nuovi sviluppatori, le piattaforme di codifica automatica potrebbero anche diventare uno strumento indispensabile. Qualcuno che sta imparando a diventare uno sviluppatore oggi entrerà in campo tra qualche anno, ma è probabile che le piattaforme di autocodifica abbiano raggiunto i programmatori umani durante quel periodo. Pertanto, le prossime generazioni di sviluppatori smetteranno lentamente di programmare e la generazione successiva potrebbe persino dimenticare che esiste il codice.
I programmatori oggi devono avere una profonda conoscenza del linguaggio di loro scelta, insieme alla conoscenza di come effettivamente codificare una soluzione a un problema. Tuttavia, i programmatori del futuro devono solo sapere come funziona una lingua, in quanto possono quindi combinare questa conoscenza con l’ingegneria rapida per generare frammenti di codice. L’ingegneria rapida è il processo di utilizzo delle tecniche di PNL per porre la domanda giusta a un LLM, sollecitando così la migliore risposta possibile dall’algoritmo.
Come con altre applicazioni di intelligenza artificiale che sconvolgono il settore dell’istruzione, è necessario un consenso su come devono essere insegnati i linguaggi di programmazione. I nuovi studenti dovranno imparare come estrarre il massimo dalle piattaforme di autocodifica attraverso l’ingegneria rapida o attenersi al metodo attuale di apprendimento di una lingua al rovescio solo per perdere l’intelligenza artificiale nei prossimi anni.
Quali sono le prospettive per gli autocodificatori?
Anche se l’adozione di piattaforme di codifica automatica continua ad aumentare, le aziende dietro a queste offerte stanno innovando per aggiungere nuove funzionalità e ottimizzare l’esperienza dell’utente. Mentre Github Copilot è stato criticato per aver raccolto il codice degli utenti e averlo utilizzato per addestrare i loro algoritmi, resta il fatto che continua a migliorare con ogni frammento di buon codice aggiunto al suo database.
Tuttavia, altre società hanno adottato un approccio più responsabile all’utilizzo dei dati. Prendiamo ad esempio Tabnine , che utilizza solo dati pubblicamente consentiti per addestrare i suoi algoritmi. I modelli di Tabnine possono anche imparare dallo stile di codifica dell’utente. Eseguendo gli algoritmi localmente sul computer degli utenti, il modello può riprendere lo stile del programmatore in questione, offrendo suggerimenti di frammenti che si allineano maggiormente con i requisiti degli utenti. Ciò impedisce inoltre che tutti i dati vengano rispediti a un repository centralizzato, preservando la privacy e fornendo valore aggiunto.
Contrariamente all’approccio attuale di creare un modello enorme che può servire suggerimenti in più lingue, come Codex, le future piattaforme di autocodifica potrebbero prendere più modelli e collegarli alla lingua che meglio si adatta a loro. Tabnine ha già riscontrato successo nell’utilizzo di vari modelli open source per diversi linguaggi di programmazione. Brandon Jung, VP Ecosystem and Business Development di Tabnine, ha dichiarato:
“Stiamo prendendo i migliori modelli che escono da qualsiasi altra parte, sono open source, sono fantastici. Prendiamo i modelli molto grandi, che sono molto costosi da addestrare, e li specializziamo sul codice in base a ciò che è meglio per ogni lingua. Quindi, a quanto pare, alcuni di questi sono migliori per alcune lingue piuttosto che per altre”.
Adottare questo approccio non solo può rendere le piattaforme di codifica automatica più accurate, ma può anche rendere più praticabile per le aziende eseguirle e perfezionarle sui propri repository di codice personali. Attualmente, una grande quantità di dati è isolata con fornitori di servizi come GitHub, AWS e GCP, ma l’allontanamento da tali piattaforme può democratizzare l’accesso all’autocodifica. Questo, a sua volta, incoraggerà più persone a utilizzare gli autocodificatori come strumenti in modo più efficace, aumentando così l’accuratezza delle loro previsioni.
GitHub Copilot potrebbe costituire un pericoloso precedente per il futuro delle piattaforme di codifica automatica, ma i vantaggi che offre ai programmatori sono innegabili . I programmatori di coppie di intelligenza artificiale più avanzati non solo possono migliorare notevolmente l’efficienza del codice, ma possono anche alleviare la pressione sui programmatori che sono regolarmente oberati di lavoro. Al contrario, gli istituti di istruzione e formazione devono anche riconoscere l’utilità di avere una piattaforma di autocodifica nel toolkit di uno sviluppatore e dotarli degli strumenti di cui hanno bisogno per programmare per il futuro.