Battaglia di assistenti di programmazione AI: GitHub Copilot vs Amazon CodeWhisperer
Anche se con un anno di ritardo, Amazon ha lanciato una concorrenza diretta a Copilot, chiamandolo CodeWhisperer.
I giganti della tecnologia competono in tutto. Ora, l’argomento di interesse sembra essere gli assistenti di codifica basati sull’intelligenza artificiale. Una delle principali innovazioni tecnologiche dell’anno scorso è stata GitHub Copilot , un programmatore di coppie di intelligenza artificiale sviluppato da Microsoft e OpenAI. Ha creato molto scalpore nel mondo della tecnologia e ha ricevuto molti apprezzamenti (e anche alcune critiche).
Amazon si è svegliato dal suo sonno di un anno e ha lanciato una competizione diretta con Copilot. È stato chiamato CodeWhisperer.
CodeWhisperer è un servizio basato sull’apprendimento automatico che aiuta a migliorare la produttività degli sviluppatori generando suggerimenti sul codice basati sui commenti degli sviluppatori in linguaggio naturale e sul loro codice nell’ambiente di sviluppo integrato. Durante l’anteprima, CodeWhisperer è disponibile per i linguaggi di programmazione Java, JavaScript e Python. Si integra con più IDE, inclusi JetBrains, Visual Studio Code, AWS Cloud9 e la console AWS Lambda, secondo Amazon.
Colpire al momento opportuno
È interessante notare che questo avviene sullo sfondo di giorni dopo che Microsoft ha annunciato la disponibilità generale di GitHub Copilot a tutti gli sviluppatori per 10 USD/mese o 100 USD/anno. Sarà gratuito da utilizzare per studenti verificati e manutentori di popolari progetti open source. Fino a quando questo annuncio non è stato fatto da GitHub, era disponibile anche in anteprima tecnica. Al momento, non ci sono dettagli sul costo di CodeWhisperer.
Il CEO di Github, Thomas Dohmke, ha informato: “Con oltre 1,2 milioni di sviluppatori nella nostra anteprima tecnica negli ultimi 12 mesi, le persone che hanno iniziato a utilizzare GitHub Copilot ci hanno subito detto che è diventato una parte indispensabile dei loro flussi di lavoro quotidiani”.
Ha poi aggiunto che nei file in cui Copilot è abilitato, quasi il 40% del codice viene scritto da GitHub Copilot nei linguaggi di codifica popolari, come Python, e l’azienda prevede che questo aumenterà.
GitHub Copilot trae contesto da commenti e codice per suggerire istantaneamente singole righe e intere funzioni. È basato su Codex (modello di linguaggio pre-addestrato generativo di OpenAI) ed è disponibile come estensione per Visual Studio Code, Visual Studio, Neovim e la suite di IDE JetBrains.
Non solo una copia di Copilot, afferma il top executive di Amazon
Durante l’interazione con TechCrunch , Vasi Philomin, VP di Amazon per i servizi di intelligenza artificiale, ha affermato che Amazon non ha creato CodeWhisperer per fornire un’alternativa a Copilot. Ha affermato che con CodeGuru e DevOps Guru, l’azienda ha gettato le basi per il lancio alcuni anni fa.
CodeGuru – Nel 2020, Amazon ha annunciato la disponibilità generale di Amazon CodeGuru. È uno strumento di sviluppo basato su ML che fornisce consigli intelligenti per migliorare la qualità del codice e identificare le righe di codice più costose di un’applicazione.
DevOpsGuru – L’anno scorso, Amazon ha annunciato la disponibilità generale di Amazon DevOps Guru, un servizio basato su ML che offre agli utenti un modo più semplice per misurare e migliorare le prestazioni operative e la disponibilità di un’applicazione e ridurre i costosi tempi di inattività.
Consegnare ciò che afferma?
Dal lancio di Copilot, ha generato molta curiosità e sono stati condotti studi per vedere se offre ciò che afferma. Secondo il documento intitolato ” GitHub Copilot è un sostituto per la programmazione di coppie umane? An Empirical Study”, gli autori hanno condotto un esperimento con 21 partecipanti in cui hanno enfatizzato la produttività del codice e la qualità del codice.
Per la progettazione sperimentale, a un partecipante è stato assegnato un progetto da codificare in tre condizioni presentate in un ordine randomizzato.
Programmazione in coppia con Copilot
Programmazione di coppia umana come pilota
Come navigatore
I codici generati dalle tre prove sono stati analizzati per determinare quante righe di codice sono state aggiunte in media in ciascuna condizione e quante righe di codice sono state in media rimosse nella fase successiva. “I risultati suggeriscono che, sebbene Copilot aumenti la produttività misurata dalle righe di codice aggiunte, la qualità del codice prodotto è inferiore a causa della cancellazione di più righe di codice nella prova successiva”, hanno aggiunto gli autori.
Un altro studio intitolato “Dormire alla tastiera? Valutare la sicurezza dei contributi di codice di GitHub Copilot ” ha dimostrato che i codici progettati da Copilot potrebbero includere bug o difetti di progettazione che un utente malintenzionato può potenzialmente sfruttare. Gli autori hanno creato 89 scenari per i quali Copilot può sviluppare codice, il che ha portato a 1.692 programmi. Gli autori hanno scoperto che circa il 40% di questi codici includeva bug che potevano rappresentare rischi per la sicurezza.
CodeWhisperer tiene in considerazione il tuo stile di codifica
Gli sviluppatori devono rimanere aggiornati su diversi linguaggi di programmazione, framework, librerie software e servizi cloud. Ora, Amazon afferma che gli sviluppatori possono accelerare il processo di sviluppo con CodeWhisperer semplicemente scrivendo un commento nell’editor di codice del loro IDE.
“CodeWhisperer analizza automaticamente il commento, determina quali servizi cloud e librerie pubbliche sono più adatti per l’attività specificata e consiglia uno snippet di codice direttamente nell’editor del codice sorgente”, afferma Amazon.
Jeff Barr, Chief Evangelist di AWS, ha aggiunto in un post sul blog che CodeWhisperer esaminerà continuamente il codice dell’utente e i suoi commenti e presenterà loro consigli sintatticamente corretti. “I consigli sono sintetizzati in base al tuo stile di codifica e ai nomi delle variabili e non sono semplici frammenti”, ha aggiunto.
Immagine: compagno di codifica basato su ML – Amazon CodeWhisperer – Amazon Web Services
La sicurezza è anche un’area di interesse per CodeWhisperer
Anche CodeWhisperer mantiene la sicurezza come una priorità, afferma Amazon. Fornisce scansioni di sicurezza per Java e Python per aiutare gli sviluppatori a rilevare le vulnerabilità nei loro progetti e creare applicazioni in modo responsabile. Include anche un tracker di riferimento che rileva se una raccomandazione del codice potrebbe essere simile a particolari dati di addestramento. Gli sviluppatori possono quindi trovare e rivedere facilmente l’esempio di codice e decidere se utilizzare il codice nel loro progetto.