GitHub Copilot: pro e contro

GitHub Copilot è una soluzione basata sull'AI pensata per semplificare e velocizzare la scrittura del codice. In questo articolo vedremo i vantaggi e gli svantaggi insiti nell'uso di questa soluzione.

Pro: velocità nei task banali

Copilot suggerisce il codice da inserire in base al contesto. In particolare, è sufficiente scrivere i nomi delle variabili, dei metodi e delle funzioni in modo descrittivo perché tali nomi vengano usati dall'AI come un prompt implicito.

Ad esempio, se in JavaScript scriviamo getAPISearchResults() come nome di una funzione, Copilot potrebbe suggerire lo scheletro di base di una richiesta HTTP REST con le Fetch API. Ovviamente l'URL e i parametri suggeriti non saranno quelli desiderati, perché l'AI fornirà un esempio generico che poi noi dovremo personalizzare.

Tuttavia, l'incremento nella velocità è considerevole se si pensa che senza Copilot avremmo dovuto scrivere da zero l'intero scheletro della richiesta HTTP con fetch(). Oltre ai prompt espliciti, che possono anche essere scritti all'interno di un blocco di commenti o nella chat, questi prompt impliciti si rivelano estremamente efficaci nella scrittura del codice nei nostri progetti.

Inoltre, il fatto che Copilot sia perfettamente integrato in un editor popolare come Visual Studio Code, rende questa soluzione incredibilmente semplice da usare.

Ovviamente i suggerimenti proposti da Copilot vanno testati in modo molto approfondito prima di essere inclusi nel codice di produzione. Oltre ai test di compilazione e runtime, va verificato con estrema cura se il codice proposto è aggiornato e non sta violando una best practice del linguaggio o del framework che stiamo usando (nell'ambito della sicurezza, della performance, ecc.).

Contro: dipendenza e pigrizia

Copilot crea dipendenza e può renderci incredibilmente pigri. Se dopo aver scritto il nome di un metodo o di una funzione, fissate lo schermo in attesa che Copilot scriva il codice per voi, siete di fatto divenuti dipendenti da Copilot e ormai vi siete anche impigriti nel trasformare le idee che avete in testa in codice concreto.

Le aree mentali interessate sono:

  1. Memoria: avete progressivamente dimenticato la sintassi di base di molte funzionalità dei linguaggi che usate. Nel caso delle Fetch API citato prima, probabilmente non ricordate più che se effettuate una richiesta POST in JSON dovete specificare l'header HTTP Content-Type con il tipo MIME appropriato. Copilot lo faceva per voi.
  2. Ragionamento: tendete ad accettare tutti quei suggerimenti che apparentemente svolgono il compito desiderato, senza ragionare sulle implicazioni che questi possono avere all'interno dell'intero progetto, soprattutto sul lungo periodo.

Per ovviare a questi problemi, la soluzione è la seguente:

  1. Disabilitate Copilot nel vostro editor o IDE per non essere infastiditi dai suggerimenti.
  2. Riattivate l'esercizio della memoria andando a consultare la documentazione online e implementate da zero la struttura di base del codice.
  3. Riattivate il ragionamento critico valutando attentamente l'impatto del codice che avete scritto sull'intero progetto dal punto di vista dell'efficienza e della manutenibilità del codice.
  4. Riattivate Copilot disabilitando o regolando i suggerimenti automatici.

Conclusione

Copilot è un'ottima soluzione basata su AI, ma occorre essere consapevoli dei suoi limiti per poterlo usare al meglio.

Torna su