Benvenuti a OpenDev Explorer, la mia rubrica dedicata all’esplorazione del mondo Open Source che strizza un occchio alla developer experience. Io sono Riccardo (aka TheZal) e oggi vi parlerò di Codeium, un tool con plugin open-source per sviluppatori che permette l’autocomplete del codice e non solo tramite AI.
Panoramica Generale
Nell’era dell’intelligenza artificiale, Codeium si propone come un tool open-source per sviluppatori che permette l’autocomplete del codice tramite AI puntando a scalzare alcuni giganti dell’industria come Copilot.
Codeium si presenta con tre funzionalità principali: l’autocomplete, la Codeium Chat e la funzione di Context Aware che lo rende unico nel panorama degli assistenti AI per sviluppatori.
Manuale di istruzioni
Installazione
Codeium è disponibile come plugin per Vim e può essere installato tramite il vostro package manager di Vim preferito o tramite l’installazione manuale (più dettagli qui). Per esempio, se usate vim-plug, basta aggiungere la seguente riga al vostro file di configurazione:
Plug 'Exafunction/codeium.vim', { 'branch': 'main' }
Code language: JavaScript (javascript)
Codeium è disponibile anche come plugin per moltissimi altri editor e IDE, tra cui Visual Studio Code, Sublime Text, Eclipse e tanti altri.
Utilizzo
Una volta installato, Codeium si attiva automaticamente e una volta effettuato il login, è possibile iniziare a scrivere il codice e vedere le proposte di completamento generate dall’AI. Inoltre, è possibile utilizzare la Codeium Chat per chiedere consigli o aiuto su un pezzo di codice specifico e la funzione di Context Aware per avere suggerimenti contestuali in base a dove ci si trova.
Per Vim è possibile vedere la lista dei comandi disponibili digitando :help codeium
, alcuni esempi sono:
Azione | Funzione | Tasti predefiniti |
---|---|---|
Cancella suggerimento corrente | codeium#Clear() | <C-]> |
Prossimo suggerimento | codeium#CycleCompletions(1) | <M-]> |
Suggerimento precedente | codeium#CycleCompletions(-1) | <M-[> |
Inserisci suggerimento | codeium#Accept() | <Tab> |
Richiedi suggerimento | codeium#Complete() | <M-Bslash> |
La developer experience
Per quanto riguarda la developer experience devo limitarmi a parlare della mia esperienza diretta con vscode, visto che non l’ho utilizzato su neovim. La mia esperienza è stata molto positiva, l’autocomplete funziona molto bene e le proposte di completamento sono molto precise e utili. Inoltre, la Codeium Chat è molto utile per chiedere consigli o aiuto su un pezzo di codice specifico.
Secondo me comunque l’integrazione di Github Copilot con Visual Studio Code rimane migliore, probabilmente data dal fatto che l’ide e l’assistente sono “figli della stessa madre”. Non mi sento comunque di reputare difficoltosa l’integrazione di Codeium con VSCode in quanto comunque risulta semplice e veloce.
L’extra mile
L’extra mile di Codeium è dato dal loro principio chiamato “Context Aware Everything”. Questo principio si basa sul fatto che Codeium è in grado di capire il contesto in cui si trova, contesto che è gestibile anche manualmente grazie ad alcune funzionalità tra cui il “Context pinning”.
Questa funzionalità è resa possibile dal “ContextModule” che accoglie vari input e stati, come il nome del file e la posizione del cursore per l’autocompletamento, o la domanda per la chat. Estrae il contesto rilevante, come il codice nel file corrente o in altri file importati, utilizza gli embedding per valutare l’importanza dei frammenti contestuali e costruisce il prompt in base alla massima lunghezza consentita dal modello. Questo approccio generico è flessibile e promette miglioramenti futuri, come l’ingestione di fonti non codice e l’aumento della diversità del contesto.
Il confronto con lo status quo
Codeium va a inserirsi in un segmento di mercato dove sono presenti diverse alternative tra cui “Github Copilot”, “Tabnine” e “Replit Ghostwriter” ma riesce comunque, secondo me, ad essere un’alternativa molto valida a questi grazie soprattutto anche alla possibilità di utilizzarlo gratuitamente (per individui singoli).
Codeium offre sulla sua pagina anche un’analisi molto approfondità che vi lascio qui, ma che vi spoilero dicendovi che, nel confronto con Copilot, risulta essere leggermente più lento per quello che riguarda la velocità di suggerimento, riesce ad ottenere la stessa qualità di Copilot ma riesce a vincere nell’ambito del prezzo.
Tiriamo le somme!
Codeium per me risulta un’alternativa validissima al più blasonato Github Copilot, soprattutto perchè riesce a tenere alta la qualità presentando un’offerta più conveniente rispetto al rivale made in Github, inoltre la possibilità di andare a gestire il contesto in maniera manuale permette di avere più controllo sui suggerimenti e di veicolarli nella gestione dei suggerimenti.
Darete una chance a Codeium? Alla fine è Copilot o Codeium? Fatemi sapere cosa ne pensate nei commenti!