Programma
Negli ultimi tempi c’è stato un boom di modelli open source e, per quanto riguarda l’editing del codice, strumenti come Cursor AI e GitHub Copilot permettono di provare gratuitamente i loro assistenti di codice AI, ma si incontra presto il paywall appena si prova a usarli per costruire un progetto reale.
Gemini Code Assist, l’assistente di codice AI di Google, ha appena introdotto un livello gratuito molto generoso. Arriva sotto forma di estensioni per Visual Studio Code e JetBrains.
In questo tutorial vediamo come configurarlo in Visual Studio Code e come usarlo con diversi esempi pratici.
Cosa sono gli assistenti di codice AI?
Gli assistenti di codice AI aiutano gli sviluppatori a scrivere codice in modo più efficiente suggerendo snippet, automatizzando i compiti ripetitivi e fornendo correzioni in tempo reale in ambienti come Visual Studio Code. Questo permette di passare meno tempo sulle attività di routine e più su lavoro complesso e creativo.
Anche i chatbot possono aiutare con attività di coding, ma risultano scomodi perché richiedono di passare continuamente dall’IDE alla piattaforma AI, con molto copia e incolla di codice.
Gli assistenti di codice AI si integrano direttamente nell’ambiente di sviluppo. In questo modo sono consapevoli del contesto del nostro codice ed evitano di dover fornire esplicitamente snippet quando facciamo domande. Inoltre, possono modificare direttamente il codice, rendendo molto più rapida l’integrazione delle modifiche.
Come installare Gemini Code Assist?
In questo tutorial useremo Gemini Code Assist insieme a Visual Studio Code. Gemini Code Assist è un’estensione per Visual Studio, quindi possiamo installarla come qualsiasi altra estensione:
- Clicca sulla scheda delle estensioni nel pannello di sinistra.
- Digita "gemini code assist" nella casella di ricerca.
- Clicca sul pulsante "Install".

Una volta installata, la scheda Gemini apparirà nel pannello di sinistra. Per iniziare a usare l’assistente di codice, clicca su quella scheda con il logo di Gemini ed esegui l’accesso con il tuo account Google.

Testare Gemini Code Assist
Per testare Gemini Code Assist, ho deciso di analizzare un dataset recente di brani Spotify usando Python. Il dataset che ho usato proviene da Kaggle ed è disponibile qui.
Per iniziare, crea una cartella ed estrai il file songs.csv in quella cartella. Poi apri la cartella in Visual Studio Code. L’idea è partire senza codice e lasciare che Gemini Code Assist scriva tutto per noi.
Per iniziare
Il primo prompt che ho inviato chiedeva di creare una funzione Python che caricasse i dati in un DataFrame di pandas.

Di solito, l’assistente di codice funziona modificando il codice esistente e mostrandoci un diff con le nuove modifiche. Dato che in questo caso non c’è ancora codice, possiamo chiedergli di creare un nuovo file con il codice proposto cliccando l’ultimo pulsante in alto a destra del blocco di codice nella finestra della chat.

Poi rinominiamo il file in songs.py.
Eseguire il codice
Possiamo eseguire il codice usando il terminale integrato in Visual Studio Code con il comando:
python songs.py
In questo caso otteniamo un errore:
ModuleNotFoundError: No module named 'pandas'
Questo perché lo script songs.py prova a usare pandas, che non è installato. È un’ottima occasione per verificare se Gemini Code Assist è consapevole dell’output del terminale dentro Visual Studio Code oppure no.
Gli ho chiesto di spiegare come risolvere l’errore nel terminale. Purtroppo ha dato una risposta generica, segno che non aveva la possibilità di accedere all’output del terminale. L’alternativa è copiare e incollare il testo dell’errore nella chat AI, un po’ più scomodo. Ma così facendo si ottiene la risposta corretta: dobbiamo eseguire il comando pip install pandas nel terminale.
È una limitazione spiacevole perché, da ingegnere del software, fare domande su un errore visto nel terminale è uno dei casi più comuni in cui uso l’AI.
Dopo aver installato pandas, possiamo eseguire correttamente il codice.

Fare domande generiche
Gemini Code Assist non è limitato alle domande di coding. Possiamo anche porre domande generiche o sui dati. Proviamo a farci un’idea dei dati presenti nel file songs.csv chiedendo di elencare tutte le colonne:

Nella risposta ha creato una funzione che elenca le colonne, ma ha mostrato anche un elenco direttamente nella risposta:

Spesso, usando Gemini Code Assist, mi è sembrato che avesse qualche difficoltà a distinguere quando stavo facendo una domanda generica che richiede solo una risposta testuale da quando volevo che scrivesse codice. È un problema minore perché possiamo ignorare la parte di codice, ma la chat tende a riempirsi parecchio.
Richiedere nuove funzionalità
Dalla risposta precedente vediamo che c’è una colonna track_popularity. Chiediamo a Gemini Code Assist di implementare una nuova funzione che recuperi il brano più popolare.

Quando Gemini Code Assist scrive codice nella risposta, la funzione non viene integrata automaticamente nel nostro codice. Per farlo, clicchiamo sul pulsante con la doppia freccia "Diff with Open File". Assicurati che, prima di cliccare, il file a cui appartengono le modifiche sia quello attualmente aperto nell’editor; altrimenti le modifiche verranno unite al file sbagliato.

Dopo aver premuto il pulsante, ci viene mostrato un diff. A sinistra vediamo lo stato attuale del codice e a destra il nuovo stato. Le righe evidenziate in rosso rappresentano le parti che verranno eliminate o modificate, mentre quelle in giallo sono le aggiunte o le modifiche.

Possiamo guardare la barra di scorrimento a destra per individuare queste modifiche. Spesso sono necessari cambiamenti in più punti del file ed è importante dare un’occhiata a tutti prima di accettarli.

Passando il mouse su una modifica vediamo una freccia al centro:
![]()
Trovo l’icona poco intuitiva, ma cliccare questa freccia specifica che non vogliamo includere quella specifica modifica. Dopo aver deciso quali tenere, possiamo integrare il nuovo codice cliccando il pulsante "Accept” in alto.

Autocomplete
Finora abbiamo interagito con Gemini Code Assist usando la chat AI. È già un flusso di lavoro migliore rispetto al copia-incolla tra una piattaforma AI e l’editor, perché è tutto integrato nella stessa finestra e vediamo il diff, che rende facile individuare i nuovi cambiamenti. Ma Code Assist non si limita a questo.
Mentre scriviamo, l’assistente analizza ciò che stiamo facendo e propone suggerimenti di codice che si possono integrare con la pressione di un tasto.
La colonna track_popularity nel dataset memorizza la popolarità di un brano. Scriviamo una funzione che mostri la popolarità dei brani di un dato artista, ordinati per data di uscita. Possiamo usare track_album_release_date per ordinare.
Mentre scriviamo la funzione, Gemini Code Assist suggerirà completamenti automatici. Quando iniziamo a scrivere la firma della funzione, Gemini Code Assist intuirà cosa vogliamo dal nome della funzione:

Per integrare un suggerimento, basta premere il tasto Tab sulla tastiera. Poi vogliamo creare una copia del DataFrame contenente solo i brani dell’artista indicato:

A volte il suggerimento non è quello che vogliamo. In tal caso dobbiamo scrivere manualmente ciò che ci serve o, se è abbastanza vicino, accettarlo e poi modificarlo. In questo esempio, il passaggio successivo è convertire track_album_release_date in un formato data. Tuttavia, per qualche motivo, Gemini Code Assist vuole ottenere solo l’anno di uscita, quindi ho scritto la riga manualmente.

Successivamente voglio ordinare i brani per data:

Infine, restituisco i punteggi di popolarità:

Targeting di codice specifico
Possiamo prendere di mira porzioni specifiche di codice selezionandole prima nell’editor. Quando il codice è selezionato, vengono proposti alcuni prompt automatici, come "Explain this" o "Generate unit tests".

Poter selezionare uno snippet di codice e chiedere cosa fa o come funziona è molto utile quando si entra in una nuova codebase. Spesso è il passo più difficile quando si lavora su un prodotto nuovo con codice già esistente.
Possiamo anche chiedergli di modificare il codice con un prompt personalizzato. Ad esempio, possiamo chiedere di migliorare la funzione analyze_artist_popularity_over_time() che abbiamo appena creato:

In questo caso ha migliorato la funzione aggiungendo alcuni controlli per prevenire errori.
Limitazioni del piano gratuito
Il piano gratuito di Gemini Code Assist per singoli utenti ha alcune limitazioni rispetto ai piani Standard ed Enterprise:
- Personalizzazione e integrazione limitate: il piano gratuito non permette di collegare i tuoi repository di codice privati per suggerimenti personalizzati, funzionalità disponibile nel piano Enterprise.
- Accesso alle funzionalità: alcune funzionalità avanzate di Gemini per Firebase e Apigee, così come l’automazione avanzata assistita dall’AI in Application Integration, sono disponibili solo nei piani Standard ed Enterprise.
- Sicurezza e conformità: il piano gratuito non include funzionalità di sicurezza di livello enterprise e strumenti di gestione, né l’indennizzo IP, presenti nelle offerte Standard ed Enterprise.
- Limiti operativi: il piano gratuito offre un limite giornaliero di 6.000 richieste relative al codice e 240 richieste in chat, sufficienti per l’uso individuale ma potenzialmente limitanti per progetti di team più grandi.
- Funzionalità e supporto Enterprise: le funzionalità di contesto Enterprise per la creazione di API e l’analisi avanzata della qualità delle app non sono disponibili nel piano gratuito.
Per maggiori dettagli, visita il sito di Gemini Code Assist.
Le mie impressioni su Gemini Code Assist
Ho trovato che Gemini Code Assist funzioni piuttosto bene nel complesso. Nella mia esperienza, si è comportato in modo simile ai principali concorrenti, Cursor e Copilot. È davvero notevole per uno strumento gratuito. Il livello free supporta fino a 6.000 richieste relative al codice e 240 richieste in chat ogni giorno. Dovrebbe essere più che sufficiente per la maggior parte dei programmatori.
Un’altra funzione interessante che non abbiamo trattato qui è l’integrazione con GitHub. Gemini Code Assist per GitHub aiuta rivedendo le pull request per trovare bug e problemi di stile e suggerendo automaticamente modifiche e correzioni. Questo permette agli sviluppatori di concentrarsi maggiormente sulla scrittura del codice. Se serve aiuto, è possibile chiedere a Gemini lasciando un commento nella pull request.
Un problema che ho riscontrato è che sembra faticare un po’ con le richieste passate. Spesso mi è capitato di chiedere alcune modifiche e poi decidere di cambiare direzione. Tuttavia, nelle iterazioni successive continuava a voler integrare quelle modifiche. Un esempio è la funzione che abbiamo scritto per mostrare la popolarità di un brano nel tempo. Inizialmente volevo fare un grafico con questi dati e poi ho cambiato idea. Però il codice per tracciare quel grafico continuava a essere aggiunto a richieste future non correlate, il che era un po’ fastidioso.
I rischi degli assistenti di codice
Di recente ho visto più programmatori esprimere preoccupazioni, come in questo thread su Reddit, su come l’uso di assistenti come Cursor o Copilot li stia lentamente facendo dimenticare come scrivere codice.
Non c’è dubbio che questi strumenti offrano incredibili aumenti di produttività e non usarli ci mette in svantaggio rispetto ai nostri pari. Tuttavia, penso che in tutto serva equilibrio e, con gli strumenti di coding basati su AI, è facile cadere nella trappola di accettare alla cieca il codice che ci viene proposto. Come minimo, dovremmo prenderci il tempo per leggere e capire ciò che genera.
Anche il completamento del codice sembra un buon compromesso, perché almeno dobbiamo iniziare a scrivere qualcosa per mantenere la memoria muscolare ed evitare che i programmatori facciano troppo affidamento sugli strumenti AI. Inoltre, il completamento tende a fornire blocchi di codice più piccoli, più facili da digerire.
Conclusione
Gli strumenti di AI continuano a evolversi, con costi in diminuzione e accessibilità in aumento. Gemini Code Assist incarna questa tendenza offrendo gratuitamente un potente strumento di assistenza al coding.
Questa iniziativa di Google abbassa la barriera d’ingresso per gli sviluppatori, permettendo praticamente a chiunque di usare un potente supporto AI nei propri compiti di coding. È particolarmente apprezzabile che Gemini Code Assist offra funzionalità all’altezza, se non competitive, con servizi a pagamento come Cursor e Copilot. Con fino a 6.000 richieste relative al codice e 240 richieste in chat disponibili ogni giorno, offre un supporto più che sufficiente per sviluppatori individuali o piccoli progetti.


