L'intelligenza artificiale ha influenzato in modo significativo numerose professioni e gli sviluppatori non fanno eccezione. Ma quali sono i pensieri degli sviluppatori su questa tecnologia?
La crescente popolarità dell'IA è innegabile, ma solleva la questione di quanto sia significativa e rilevante l'IA per il flusso di lavoro di uno sviluppatore. Per far luce su questo argomento, Stack Overflow ha intervistato oltre 90.000 sviluppatori, cercando le loro opinioni sull'intelligenza artificiale. Il sondaggio ha prodotto diverse conclusioni degne di nota, come mostrato di seguito.
Sentimenti generali degli sviluppatori nei confronti dell'IA
Come accennato, l'IA sta diventando sempre più popolare tra gli sviluppatori. Secondo il Sondaggio Stack Overflow 2023, il 70% sta già utilizzando o prevede di utilizzare gli strumenti di intelligenza artificiale nel proprio processo di sviluppo, con il 44% che già utilizza gli strumenti ora e il 26% che prevede di farlo.
Le opinioni sull'IA differiscono in base alla professione e al livello di esperienza dello sviluppatore.
Professione
SRE, professionisti della sicurezza e sviluppatori di giochi hanno opinioni sfavorevoli sull'IA. Ciò è possibile a causa dei problemi di sicurezza causati dall'inserimento di codice o informazioni sensibili nei sistemi di intelligenza artificiale.
È meno probabile che gli sviluppatori focalizzati su hardware, sistemi back-end o applicazioni utilizzino strumenti di intelligenza artificiale. Questo perché le applicazioni sono troppo complesse e gli strumenti di intelligenza artificiale non sono in grado di aiutarle.
Gli sviluppatori front-end, i data scientist e gli sviluppatori cloud sono tra gli sviluppatori che hanno maggiori probabilità di utilizzare strumenti di intelligenza artificiale. Per gli sviluppatori front-end e gli sviluppatori back-end, gli strumenti AI possono aiutare fornendo frammenti di codice o script per determinate funzioni.
I data scientist possono sfruttare l'intelligenza artificiale per automatizzare l'elaborazione dei dati, l'ottimizzazione dei modelli e la selezione delle funzionalità.
Per gli sviluppatori cloud, l'intelligenza artificiale può aiutare a ottimizzare la gestione dell'infrastruttura automatizzando processi come l'allocazione delle risorse, il bilanciamento del carico, il monitoraggio e l'ottimizzazione delle prestazioni.
Esperienza
Gli sviluppatori all'inizio della loro carriera e quelli che imparano a programmare hanno maggiori probabilità di utilizzare strumenti di intelligenza artificiale, forse perché migliora la velocità di apprendimento.
D'altra parte, il 42,2% degli sviluppatori con più di 21 anni di esperienza è meno favorevole all'IA. Ciò potrebbe essere dovuto al fatto che vogliono vedere se l'hype che circonda l'IA si placherà prima di impegnarsi in un determinato strumento.
Paesi
Gli sviluppatori professionisti provenienti da India (83%), Brasile (78%) e Polonia (70%) sono tra gli sviluppatori che utilizzano o pianificano di utilizzare strumenti di intelligenza artificiale in futuro. Ciò è probabilmente dovuto all'elevata crescita di giovani sviluppatori di questi paesi. Gli sviluppatori di Regno Unito, Francia e Germania hanno meno probabilità di utilizzare strumenti di intelligenza artificiale.
Per quali attività gli sviluppatori utilizzano l'IA?
Gli sviluppatori utilizzano l'intelligenza artificiale per attività diverse e queste attività variano tra gli sviluppatori che imparano a programmare e gli sviluppatori professionisti.
Gli sviluppatori che imparano a programmare utilizzano principalmente l'intelligenza artificiale per conoscere la base di codice e scrivere codice.
Il sondaggio ha rivelato che l'86% degli sviluppatori professionisti utilizza strumenti di intelligenza artificiale per scrivere codice e il 54% li utilizza per eseguire il debug del proprio codice. Sono anche interessati a utilizzare gli strumenti di intelligenza artificiale per testare, eseguire il commit e rivedere il codice, distribuire e monitorare le applicazioni e documentare il codice.
Vale la pena notare che solo pochi sviluppatori sono interessati a utilizzare l'IA per collaborare con i compagni di squadra.
Vantaggi dell'intelligenza artificiale per gli sviluppatori
L'intelligenza artificiale è vantaggiosa per gli sviluppatori professionisti e per coloro che imparano a programmare. Complessivamente il 33% vede un aumento della produttività come il vantaggio più importante dell'utilizzo dell'IA. Strumenti come GitHub Copilot offrono funzionalità come suggerimenti sul codice, completamento automatico e rilevamento degli errori, che possono accelerare notevolmente il processo di codifica.
Gli sviluppatori professionisti hanno visto il miglioramento della produttività (37,4%) come il principale vantaggio, con maggiore efficienza (27,9%) e velocità di apprendimento (27,4%) come secondari.
Per gli sviluppatori che imparano a programmare, maggiore velocità di apprendimento (42,4%) e maggiore produttività (41,4%) sono i principali vantaggi dell'intelligenza artificiale mentre una maggiore efficienza (33,7%) durante la scrittura del codice è secondaria beneficio.
Solo una piccola percentuale di sviluppatori vede una maggiore precisione come un vantaggio per gli strumenti di intelligenza artificiale. Gli sviluppatori professionisti esperti sono più scettici in quanto solo il 14,1% considera una maggiore accuratezza un vantaggio dell'intelligenza artificiale rispetto al 23,8% di coloro che imparano a programmare.
Il sondaggio ha ulteriormente classificato questi vantaggi tra diversi tipi di sviluppatori. L'aumento della produttività era una costante tra tutti i tipi di sviluppatori.
Stack Overflow ha esaminato la popolarità di vari strumenti di intelligenza artificiale raggruppati tra strumenti di ricerca di intelligenza artificiale e strumenti di sviluppo di intelligenza artificiale. Dai dati, gli sviluppatori utilizzano principalmente due strumenti, ChatGPT e GitHub Copilot.
Tra gli strumenti di ricerca AI, ChatGPT è lo strumento più popolare. Il 79% degli sviluppatori che lo utilizzano desidera riutilizzarlo l'anno prossimo. Subito dopo in popolarità c'erano Bing AI e Google Bard AI.
Google ha parlato delle capacità di programmazione di Bard, ma quando rispetto a ChatGPT, Bard è ancora in ritardo.
Alcuni degli altri strumenti di ricerca AI segnalati dagli sviluppatori sono WolframAlpha, Phind e You.com.
GitHub Copilot è l'assistente di codifica AI più popolare. Oltre il 70% degli intervistati che hanno lavorato con GitHub Copilot desidera lavorarci di nuovo. Inoltre, oltre il 59% degli utenti Tabnine e il 50% degli utenti AWS Code Whisperer desiderano utilizzare GitHub Copilot.
Questa lenta adozione di un'ampia varietà di strumenti di intelligenza artificiale può essere attribuita allo scetticismo sull'accuratezza dell'IA con solo il 2,85% degli sviluppatori che si fidano molto dell'output dell'IA. Questa sfiducia può essere attribuita a strumenti come ChatGPT che a volte forniscono output errati. Questa uscita, se utilizzata, può causare danni significativi a un'applicazione. Quando si utilizzano questi strumenti, è sempre consigliabile verificare prima l'output.
Come iniziare con l'intelligenza artificiale nello sviluppo software
In qualità di sviluppatore di software, puoi iniziare con l'intelligenza artificiale incorporando strumenti di generazione e modifica del codice nel tuo processo di sviluppo. Strumenti come GitHub Copilot e Tabnine suggeriscono frammenti di codice in base al contesto durante la digitazione, il che può ridurre notevolmente i tempi di sviluppo. Inoltre, ChatGPT è molto utile per generare funzioni di utilità, componenti dell'interfaccia utente e codice di debug. Con i giusti suggerimenti, puoi persino usa ChatGPT per creare app web.
Il futuro dello sviluppo software assistito dall'intelligenza artificiale
Sebbene molti sviluppatori concordino sull'IA come strumento utile nel loro flusso di lavoro, solo pochi sono pronti a fidarsi completamente degli strumenti di intelligenza artificiale per codificare l'intera applicazione. Tuttavia, l'intelligenza artificiale sta sicuramente cambiando il modo in cui gli sviluppatori creano applicazioni. Sfruttando gli strumenti di intelligenza artificiale, gli sviluppatori possono semplificare diverse fasi di sviluppo, tra cui la scrittura del codice, il test, il debug e la revisione del codice. Di conseguenza, possono ottimizzare in modo significativo il ciclo di vita dello sviluppo.