GitHub Copilot: l’AI Pair Programmer che può diventare il nuovo alleato dello sviluppatore

Pasquale Pillitteri
Pasquale Pillitteri  - Ingegnere Informatico
7 Minuti di lettura
Image by geralt from Pixabay

L’intelligenza artificiale sta rapidamente trasformando molti aspetti della tecnologia e dell’informatica, e la programmazione non fa eccezione. Una delle forme più interessanti in cui l’AI sta influenzando la programmazione è attraverso gli AI Pair Programmer.

Un AI Pair Programmer è un tipo di software che utilizza l’intelligenza artificiale per assistere i programmatori nella scrittura e nella risoluzione dei problemi del codice. Può fornire suggerimenti per miglioramenti del codice, trovare e correggere gli errori e aiutare con il refactoring e l’ottimizzazione. L’obiettivo di un AI Pair Programmer è migliorare l’efficienza e la precisione del processo di programmazione, riducendo al contempo la possibilità di errori nel prodotto finale. Alcuni esempi popolari sono disponibili come plugin per Kite, IntelliJ IDEA, Visual Studio Code.

E’ possibile capire se una porzione di codice è scritta con un AI Pair Programmer?

In generale, non è possibile determinare con certezza se una porzione di codice è stata scritta utilizzando un AI Pair Programmer o meno. Gli AI Pair Programmer sono progettati per fornire supporto nella scrittura e nell’ottimizzazione del codice, ma il codice generato non è necessariamente diverso da quello scritto manualmente da un programmatore umano.

Alcuni segni potrebbero essere la mancanza di commenti o una struttura del codice molto precisa. In ogni caso, questi segni non sono certi, perchè l’AI Pair Programmer può anche produrre codice con commenti, e gli stili di codifica degli esseri umani variano.

E’ possibile che una porzione di codice generato da un AI Pair Programmer sia simile a quella scritta manualmente da un programmatore umano, ma non ci sono modi per determinare con certezza l’origine del codice.

Gli Ai Pair Programmer possono sostituire l’uomo nello sviluppo degli applicativi?

Allo stato attuale gli strumenti di AI non possono sostituire completamente i programmatori umani in quanto l’intelligenza artificiale di oggi non ha ancora la capacità di comprendere a pieno il contesto e le esigenze dei progetti di sviluppo software, o di comunicare e lavorare in team come un essere umano. Inoltre, l’intelligenza artificiale dipende dai dati che gli vengono forniti per essere addestrata, quindi se i dati non sono adeguati, le sue risposte e le sue decisioni non saranno accurate.

In sintesi, gli AI Pair Programmer possono essere un’ottima risorsa per supportare i programmatori nella loro attività quotidiana, ma non è pensabile che possano sostituirli completamente a causa della loro limitazione attuale e la necessità di una vera comprensione del contesto. In futuro, ci si aspetta che l’AI continuerà a evolversi e a diventare sempre più sofisticata, permettendo agli AI Pair Programmer di diventare ancora più utili e di fornire ancora più supporto ai programmatori. Ciò potrebbe portare a una maggiore automatizzazione del processo di sviluppo del software e a una riduzione del rischio di errori nel codice.

Ai Pair Programmer è il futuro? No, è già il presente: GitHub Copilot

GitHub Copilot è un assistente AI che fornisce uno strumento di completamento automatico durante la codifica. E’ possibile ottenere questi suggerimenti iniziando a scrivere il codice o digitando un commento in linguaggio naturale indicando cosa ci si aspetta che il codice faccia. Questo sistema di intelligenza artificiale tiene conto del file che stai modificando e dei file correlati e fornisce suggerimenti dall’interno dell’editor di testo. Tale sistema AI è alimentato da OpenAI Codex, una nuova tecnologia AI sviluppata da OpenAI.

GitHub Copilot: come funziona?

GitHub Copilot è addestrato su tutte le lingue presenti nei repository pubblici. La qualità dei suggerimenti può variare in base alla quantità e alla diversità dei dati di formazione per quella lingua. Ad esempio, i linguaggi con una maggiore presenza nei repository pubblici, come JavaScript, hanno maggiori probabilità di avere suggerimenti più accurati e solidi. Altri linguaggi con meno esempi di repository pubblico possono avere meno suggerimenti o suggerimenti meno precisi.

GitHub Copilot fornisce consulenza basata su un modello assemblato da miliardi di linee di codice open source. Tuttavia, questi dati possono avere modelli di codifica non sicuri, bug o riferimenti a API o espressioni obsolete. Pertanto, i suggerimenti di GitHub Copilot possono anche contenere modelli errati. Per garantire la sicurezza e l’eccellenza del codice, la stessa consapevolezza dovrebbe essere presa quando si utilizza il codice prodotto da GitHub Copilot, come si farebbe per il codice composto in modo indipendente. Ciò comporta test esaustivi, debug e controllo delle vulnerabilità. GitHub offre varie funzionalità per supervisionare e migliorare la qualità del codice, come GitHub Actions, Dependabot, CodeQL e scansione del codice. Tutti i servizi elencati sono disponibili gratuitamente.

Va sottolineato che GitHub Copilot utilizza dei filtri per bloccare le parole offensive nelle richieste ed evitare di produrre suggerimenti in contesti sensibili. GitHub afferma di impegnarsi costantemente a migliorare il sistema di filtri per individuare e rimuovere in modo più intelligente i suggerimenti offensivi generati da GitHub Copilot, compresi quelli di parte, discriminatori o abusivi.

GithHub Copilot First Look

Copilot GitHub è a pagamento?

GitHub Copilot è una funzione a pagamento che richiede un abbonamento mensile o annuale, ma è disponibile un periodo limitato di prova. Tuttavia gli studenti, gli insegnanti e i manutentori di progetti open source popolari su GitHub possono utilizzare Copilot gratuitamente per uso personale. GitHub Copilot per le aziende non prevede, invece, nessuna prova gratuita.

Prova subito GitHub Copilot!

GitHub Copilot è disponibile come estensione in Visual Studio Code, Visual Studio, Neovim e nella suite di IDE JetBrains. Ulteriori informazioni sono disponibili sulla pagina ufficiale Copilot di GitHub: https://github.com/features/copilot/.

Condividi questo articolo
da Pasquale Pillitteri Ingegnere Informatico
Segui:
Pasquale Pillitteri si è laureato in ingegneria informatica all'Università di Palermo. Ha lavorato con diversi team e aziende del settore informatico, acquisendo la capacità di progettare e sviluppare soluzioni software che soddisfano i più alti standard di qualità, sicurezza e affidabilità. Attualmente collabora con diverse aziende, mettendo a loro disposizione la sua esperienza nell'ingegneria e la sua profonda conoscenza delle tendenze innovative in materia di Internet od Things, intelligenza Artificiale e Cybersecurity.
adbanner