Usare il linguaggio naturale per chiedere all’intelligenza artificiale di sviluppare codice sorgente in uno dei principali linguaggi di programmazione: è quello che fa GitHub Copilot, uno strumento in grado di “suggerire” le migliori soluzioni promettendo di ridurre le ore di lavoro necessarie.
Si tratta, indubbiamente, di un progetto molto interessante, ma è vero anche che le aziende potrebbero non accettare il fatto che la propria forza lavoro utilizzi codice generato attraverso GitHub Copilot a causa di possibili problemi di copyright del codice generato con codice aperto.
Per non parlare del fatto che il servizio potrebbe conservare quel codice e usarlo per migliorare i propri modelli di apprendimento. Con il rischio, per le aziende stesse, di una importante perdita di proprietà intellettuale.
GitHub Copilot è comunque sulla buona strada per migliorare l’intero ecosistema dello sviluppo software.
Secondo alcune ricerche effettuate dalla stessa GitHub, lo strumento Copilot ha goduto di un grande successo migliorando la concentrazione degli sviluppatori del 74%, inoltre ha reso gli utenti più produttivi ed efficienti fino all’88%, automatizzando le attività ripetitive di quasi il 100%.
Questi numeri suggeriscono che GitHub Copilot potrà avere un forte impatto sulla produttività dei programmatori. Tuttavia, ci sono già preoccupazioni in merito alla possibilità che l’automazione possa presto sostituire il lavoro dei programmatori.
Rafforzamento della cooperazione europea sull’intelligenza artificiale: una visione condivisa
Indice degli argomenti
Una panoramica illustrativa su GitHub Copilot
Per capire cos’è esattamente GitHub Copilot e quali attività dovrebbe eseguire, è importante esaminare prima GitHub, il progetto che ha le sue basi negli Stati Uniti d’America e appartiene a Microsoft dal 2018.
GitHub è progettato per consentire a gruppi di grandi dimensioni di lavorare insieme e in modo indipendente sul codice. Tutte le versioni dello sviluppo software di questi gruppi vengono salvate e le modifiche possono essere unite secondo necessità. Un gran numero di aziende, sviluppatori e progetti open source utilizza GitHub e trova il servizio di hosting molto intuitivo.
Dal 2021, l’azienda offre il sistema GitHub Copilot. Questo strumento di intelligenza artificiale (AI) è un assistente progettato per aiutare i programmatori sviluppatori a creare codice, che inizialmente è reso possibile dal completamento automatico.
Quando l’utente inizia a inserire il codice, GitHub Copilot fornisce diversi suggerimenti su come questo codice potrebbe essere visualizzato nella sua interezza. Copilot ottiene le informazioni da codice pubblicamente accessibile, come diverse repository di codice aperto. GitHub AI va molto oltre e conosce diversi linguaggi di programmazione come Go, Java, JavaScript, Python, Ruby e TypeScript.
L’ingresso delle intelligenze artificiali nelle nostre vite lavorative
Col passare del tempo, l’intelligenza artificiale (AI) riuscirà a fornirà suggerimenti sempre migliori, ma ciononostante GitHub Copilot dovrà continuare a essere sviluppato per garantire una migliore interpretazione della AI.
GitHub è consapevole che il codice che si suggerisce non è ancora perfetto, ecco perché finora il tasso di successo delle proposte è stato molto basso. Gli utenti programmatori sviluppatori devono presumere che il codice non sia ancora eseguibile e che parte delle raccomandazioni proposte non possa essere utilizzata. Tuttavia, Copilot offre già i primi suggerimenti utili o addirittura utilizzabili senonché ottime idee di spunto.
Copilot X è la versione aggiornata e con più funzionalità dell’applicazione Copilot. Lo strumento integra anche le funzionalità di chat e voce che mirano a migliorare l’esperienza di codifica comprendendo il contesto e fornendo suggerimenti di conseguenza.
Fondamentalmente, Copilot X adotta l’ultimo GPT-4 di OpenAI e questo lo rende più efficiente e preciso nel suggerire codice e rispondere alle domande dell’utente. Oltre a ciò, offre anche supporto per le richieste pull.
Attualmente, Copilot X è in anteprima (solo su invito). Nel frattempo, si può provare il già disponibile Copilot (basato su GPT 3.5) e vedere cosa offre. È una soluzione a pagamento, tuttavia si può usarlo gratuitamente se si è uno studente o un collaboratore, viceversa si può utilizzare la loro prova gratuita o successivamente a pagamento di canoni mensili per accedervi.
Differenze di funzionamento tra GitHub Copilot e Copilot X
L’idea essenziale alla base di GitHub Copilot è utilizzare l’algoritmo avanzato di OpenAI per conoscere il contesto del codice. Una volta fatto, inizierà a dare suggerimenti, che si possono accettare o scartare.
GitHub Copilot aiuta anche a generare frammenti di codice di base o scrivere test unitari (introdotti in Copilot X). Per rendere tutto possibile, il modello OpenAI passa attraverso tutto il codice sorgente aperto e quindi utilizza le conoscenze disponibili per suggerire raccomandazioni. Tuttavia, questo approccio comporta anche alcuni problemi, tra cui codice non sicuro, errori di codice e API o segmenti di linguaggio obsoleti.
Copilot X dovrebbe riuscire a migliorare ciò che già fa Copilot introducendo una migliore consapevolezza del contesto con funzionalità di chat e voce. Quindi, ora si può chiedere all’applicazione di risolvere un problema o spiegare una sezione del codice evidenziandolo.
Un programmatore esperto apprezzerà sempre la documentazione scritta dal manutentore quando questa è ben strutturata e pulita perché aiuta a conoscere rapidamente il concetto o l’idea. Copilot X porta i documenti direttamente dentro al IDE del programmatore. Con esso, si possono generare documenti altamente personalizzati che offrono risposte ad hoc alle proprie domande. Segue la documentazione scritta dal manutentore e fornisce anche citazioni in linea.
Copilot X alimentato da GPT 4 consente inoltre al programmatore di automatizzare i test. Lo fa sottolineando i test unitari mancanti. Inoltre, genera nuovi casi di test una volta completata una build.
Le richieste pull di GitHub, infine, consentono di creare descrizioni generate dall’intelligenza artificiale, in base al proprio lavoro. Utilizzando questo approccio, si possono ottenere descrizioni personalizzate per aiutare i revisori a saperne di più sulle modifiche al codice.
È importante sottolineare, inoltre, che Copilot X, proprio come Copilot, sarà disponibile direttamente dal proprio editor di codice in quanto ne supporta la maggior parte di essi, includendo editor del calibro di Visual Studio, VS Code, IDE JetBrains e Neovim.
Cos’è che non va attualmente in GitHub Copilot
Insieme a problemi già noti di suggerimenti o sintassi prematuri da sviluppare, ci sono anche discussioni sulla propensione agli errori di codice di base che si presentano o potrebbero sorgere in futuro con GitHub Copilot.
Poiché la base, attraverso la quale l’intelligenza artificiale dovrebbe apprendere, è spesso imperfetta o almeno non testata, anche il risultato finale è alquanto incerto.
Anche se è indicato che tutti gli input dell’AI devono essere verificati, dobbiamo almeno chiederci se questo può essere un reale vantaggio per il lavoro quotidiano a lungo termine.
Alcuni sviluppatori temono, inoltre, che l’utilizzo di Copilot in Git possa portare alla violazione del copyright se la AI dirotta interi blocchi di codice. Sebbene esistano diverse normative sul “fair use”, ci si può chiedere se il successo nell’apprendimento di una AI le rispetti. Questo è ancora più importante se GitHub Copilot dovesse essere utilizzato per scopi aziendali in futuro al posto della versione X.
Oggi il valore aggiunto di GitHub Copilot è evidente. Da un lato, sarebbe possibile mostrare soluzioni alternative e fornire esempi di sintassi corretta senza la necessità di una lunga ricerca in varia documentazione.
D’altra parte, si potrebbero aggiungere singoli blocchi di codice in modo indipendente e quindi contribuire con codice specifico. Questo semplificherebbe il lavoro, anche se sarebbe indispensabile avere conoscenze di base per lo sviluppo.
Le possibili vulnerabilità in ambito cyber security
GitHub Copilot e Copilot X sono strumenti rivolti a sviluppatori professionisti. Come principianti, si potrebbe trovare Copilot entusiasmante, ma è consigliato astenersi dall’usarlo durante il periodo di apprendimento. Questo perché fa la maggior parte del lavoro, il che può ostacolare la propria crescita professionale.
Inoltre, è necessario sapere che Copilot potrebbe essere migliorato. Qualsiasi suggerimento fornito potrebbe non essere corretto e può anche rappresentare una falla sia nel percorso di apprendimento che nella sicurezza. Ciò rende vulnerabili a livello di cyber security anche gli utenti finali attraverso un prodotto poco curato.
GitHub Copilot in sé è un’idea che potrebbe essere integrata, in futuro, nel lavoro con il codice sorgente. L’idea di un assistente disponibile a prendersi cura di piccoli compiti e avvertire di possibili errori è qualcosa di molto promettente. Oggi, invece, l’intelligenza artificiale è ancora molto lontana dall’avere quella funzione. L’attuale fase di test è solo il primo passo in questa direzione e quindi il tasso di errore è alto come previsto.
Il rischio di sostituzione della forza umana
Nella programmazione bisogna usare strumenti come linguaggi di programmazione, framework, plug-in, estensioni e strumenti di automazione basati sull’intelligenza artificiale come Copilot X. L’obiettivo di GitHub è aiutare i programmatori a svolgere il proprio lavoro in modo più efficiente. Ciò significa che Copilot X non sostituirà i programmatori, piuttosto li aiuterà a svolgere il proprio lavoro in modo più diligente, proprio come farebbe qualsiasi altro strumento di programmazione.
Tuttavia, Copilot X può avere un impatto diverso sui programmatori e ingegneri del software. Un programmatore potrebbe trovare Copilot X più minaccioso di altre figure. Dopotutto, il compito del programmatore è trasformare le idee di business che gli sono state assegnate dagli sviluppatori di software. Tuttavia, ciò non significa che Copilot X possa sostituire un programmatore. Può aiutare il suo lavoro e generare codice per lui, ma è necessaria la supervisione umana per garantire che il codice venga ultimato per la produzione.
Per superare qualsiasi minaccia psicologica, si deve imparare a utilizzare Copilot nel proprio flusso di lavoro per renderlo più efficiente, perché come sempre, si teme ciò che non si conosce. Inoltre, il modo migliore per aumentare le possibilità di rimanere rilevante nel settore attuale è apprendere nuove competenze, programmazione, framework e via dicendo.
Per quanto riguarda i programmatori o gli sviluppatori, Copilot X non dovrebbe spiazzarli ma aiutarli. Un programmatore è più esperto dell’automatismo in quanto ha una migliore conoscenza e comprensione delle tecnologie, in particolare come utilizzarle per risolvere i problemi.
I programmatori hanno anche una buona conoscenza degli algoritmi, i programmatori possiedono una lunga esperienza pregressa su tantissime problematiche accadute nella vita reale, e possono lavorare su problemi complessi.
Tutto ciò protegge i programmatori dall’essere sostituiti. Infatti, Copilot X può diventare il compagno perfetto per i programmatori in quanto possono usarlo per aumentare la loro produttività. Le funzioni di Copilot X, come la capacità di scrivere unit test, possono aiutarli a scrivere codice sicuro fin dall’inizio. Inoltre, la possibilità di porre domande tramite i documenti può aiutarli a ridurre i tempi di ricerca.
Gli ingegneri del software sono probabilmente le figure più al sicuro da una eventuale sostituzione con qualsiasi forma di automazione, incluso Copilot X. Dopotutto, sono responsabili della progettazione e dell’implementazione del software. Pertanto, devono comprendere e trasformare i requisiti aziendali in buoni progetti software.
Inoltre, la loro conoscenza ed esperienza giocano un ruolo cruciale nel loro successo. Rimpiazzare i programmatori con automatismi implica imbattere gli ingegneri ad eseguire parte del lavoro del programmatore e questo non è ne simpatico ne produttivo.
Il compito di un programmatore/codificatore/ingegnere del software è creare applicazioni per gli esseri umani. Questo richiede un’attenta pianificazione, comprensione ed esecuzione di idee complesse, cosa che gli strumenti di automazione potrebbero non riuscire a fare neanche in futuro.
Inoltre, Copilot X non è stato creato per sostituire alcun programmatore, piuttosto per migliorare il flusso di lavoro degli stessi.
Alcune riflessioni
GitHub Copilot X è un promettente aggiornamento del già entusiasmante Copilot. Offre molteplici funzionalità di spicco per aiutare i programmatori ad utilizzare l’intelligenza artificiale nel loro flusso di lavoro.
Tuttavia, la prospettiva del codice generato dalle intelligenze artificiali può lasciare dubbi a molti, che potrebbero pensare di essere sostituiti, soprattutto se si considera il tasso di crescita che la intelligenza artificiale ha mostrato nell’ultimo periodo, ma il programmatore sicuro del suo, non ha niente di cui temere.
In sintesi, Copilot X non sostituirà nessuno, questo perché non ha lo scopo di sostituire i programmatori, è solo simile ad altri strumenti disponibili sul mercato che i programmatori possono utilizzare per rimanere produttivi.