Programmare con l’intelligenza artificiale

Programmare con l'intelligenza artificiale cambierà l'informatica classica?

L’arrivo di ChatGPT ha sconvolto internet, gettando le basi per un modo completamente nuovo di ottenere informazioni… ma non solo. E mentre il pubblico si è diviso tra fortemente favorevoli e assolutamente contrari, una domanda si è levata tra le altre: è possibile programmare con l’intelligenza artificiale?

La risposta è sì. Utilizzando il linguaggio naturale, un programmatore (o aspirante tale) può chiedere all’intelligenza artificiale di scrivere del codice al suo posto. Il software traduce quello che viene domandando e cerca nei suoi dataset la soluzione migliore, scrivendo il codice.

Nonostante l’immensità dei dataset, tuttavia, per adesso è ancora necessario avere una supervisione umana per programmare con l’intelligenza artificiale. Ma sarà così ancora a lungo?

È possibile programmare con l’intelligenza artificiale?

Sì, tecnicamente e praticamente è possibile utilizzare l’intelligenza artificiale per svolgere alcuni compiti di programmazione: dalla generazione del codice al refactoring, fino alla fase di testing. È ovviamente anche possibile controllare se un codice pre-esistente è corretto o, addirittura, ottimizzato.

Un software di IA si è posizionato a metà classifica in una competizione tra sviluppatori. Il codice è pari a quello di un novizio alle prime armi.

 

I linguaggi di programmazioni conosciuti sono davvero tanti: dai più conosciuti C++, Python, PHP, Java e JavaScript passando per C#, R, Swift, Go e anche l’HTML. Considerando che il modello di apprendimento automatico può contare su dataset enormi in questo campo, generare codice di qualsiasi tipo non è un problema, se ben supervisionato.

Uno dei dataset open source più grandi è il Project CodeNet che raccoglie 14 milioni di campioni di codice, oltre 500 milioni di linee di codice già scritte tra cui controllare e 55 linguaggi di programmazione.

Cosa si può programmare con l’IA?

La lista di funzioni utili per un programmatore è davvero lunga e non implica unicamente la scrittura del codice. Ovviamente la generazione del codice è l’utilizzo più immediato e più basilare per un software di intelligenza artificiale. Basta inserire la descrizione di un problema o un insieme di esempi per creare le prime linee, che poi, in caso andranno affinate.

L’IA può essere d’aiuto anche al di fuori della compilazione del codice, consigliando soluzioni da intraprendere.

 

Un altro compito molto semplice è il rilevamento degli errori: confrontando un codice inserito con i suoi dataset, l’IA può scovare immediatamente lo sbaglio e fornire una correzione. Ma non solo, in un codice sorgente senza errori apparenti può predire la probabilità di bug.

Come supporto inoltre, l’intelligenza artificiale può ottimizzare il codice esistente, migliorandone le prestazioni o riducendone la complessità. Si tratta di una funzionalità davvero comoda, non solo quando si è alle prime armi. Altrettanto utile è poi l’analisi del codice tramite cui l’IA può generare dei report dettagliati sulla qualità del codice scritto e su eventuali problemi di sicurezza.

La programmazione informatica è morta?

È indubbio che l’informatica classica, per come la conosciamo noi, sta cambiando radicalmente. L’introduzione al grande pubblico di intelligenze artificiali in grado di generare codice è solo uno dei traguardi, ma non il primo. Esistevano già da qualche tempo degli assistenti per la codifica basati sull’intelligenza artificiale, come per esempio Copilot. La loro straordinaria evoluzione in pochissimo tempo però è davvero stupefacente.

Programmare con l’intelligenza artificiale richiede ancora un’attenta supervisione umana

 

In qualche anno l’intelligenza artificiale potrebbe ribaltare l’intero concetto di programmazione e di scrittura di programmi. Con a disposizione uno strumento in grado di scavare tra milioni e milioni di linee di codice, il ruolo del programmatore si potrebbe elevare ad uno stadio più teorico. Il lavoro umano sarà principalmente quello di dare input giusto e confrontare gli esempi più pertinenti, al fine di raggiungere il risultato ottimale.

C’è anche da dire che per adesso qualsiasi sistema di compilazione automatica basato sull’intelligenza artificiale è ancora imperfetto. Per quanto vengano impostati dei filtri e degli argini, un sistema di apprendimento automatico che si basa su del codice pubblicato gratuitamente online potrebbe non essere del tutto corretto o pertinente.

intelligenza artificialeprogrammareprogrammatori informaticitecnologia