Pojava ChatGPT-a i drugih sličnih alata dovela je do zabrinutosti zbog potencijalne mogućnosti zamjene osoba od krvi i mesa odgovarajućim AI proizvodima na različitim područjima ljudske djelatnosti. Jedno od područja na samom vrhu takvog popisa je svakako baš programiranje. Ostavimo budućnosti da pokaže hoće li do takve zamjene doista i doći, a za sad se radije pozabavimo prednostima u korištenju AI alata kao pomoći programerima. Jedan od najpoznatijih alata takve vrste je upravo GitHub Copilot.
Što je GitHub Copilot i kako do njega?
GitHub Copilot (u nastavku teksta samo Copilot) predstavlja programerovog suradnika u pisanju programskog koda. Na temelju postavljenih zahtjeva može dovršavati ili predlagati cijele dijelove programskog koda u različitim programskim jezicima. Razvijen je od strane GitHub-a i OpenAI-ja za korištenje u najpoznatijim razvojnim okolinama kao što su Visual Studio, Visual Studio Code, Neovim i JetBrains, odnosno programskim jezicima podržanim u nabrojanim razvojnim okolinama. Programerima je postao dostupan od desetog mjeseca 2021. godine, što znači da je riječ o prilično novom, ali istovremeno i već poprilično upotrebljavanom proizvodu.
Copilot se u praksi (u smislu prava na korištenje alata) može koristiti na različite načine. Za studente i profesore te za korištenje kod „open source“ projekata, Copilot je potpuno besplatan. Svi ostali imaju pravo na probno, besplatno korištenje svih mogućnosti u trajanju od 30 dana, nakon čega treba početi plaćati za korištenje. Za komercijalno korištenje Copilota nakon isteka probnog perioda to iznosi 10 dolara mjesečno, odnosno uz popust za jednokratno godišnje plaćanje 100 dolara.
https://docs.github.com/en: Početna web adresa na kojoj je dostupan GitHub Copilot.
Bez obzira na to koristite li Copilot besplatno ili na komercijalnim osnovama, za njegovo korištenje morate imati otvoren odgovarajući korisnički račun. Da bi se pojednostavila registracija i korištenje alata u poslovnom okruženju, tvrtke mogu koristiti posebnu komercijalnu verziju GitHub Copilot Business. Tijekom samog postupka registracije trebate odlučiti i to dozvoljavate li Copilotu da pristupa vašem programskom kodu, kako bi dodatno unaprijedio vlastito funkcioniranje na temelju vaših radova. Ako su ti radovi takvi da bi doista mogli pomoći i drugima.
U slučaju da se naknadno predomislite u pogledu početno izabrane vrijednosti o dostupnosti koda, uvijek ju možete promijeniti pomoću promjene postavki korisničkog računa. Kao što to možete vidjeti na pratećoj slici uz tekst, osim te opcije je na raspolaganju čitav niz dodatnih parametara pomoću kojih možete upravljati svojim korisničkim računom. Od načina prikaza boja i posebnih postavki za dostupnost, preko načina plaćanja i autentifikacije, pa sve do upravljanja repozitorijima, paketima i slično.
Dozvola za pristup vašem kodu: Copilot ga nakon toga smije koristiti za vlastito poboljšanje.
Integracija s razvojnim alatom
Već smo spomenuli da se Copilot može integrirati s nekoliko vrlo popularnih razvojnih okolina. U nastavku ćemo pokazati kako ta integracija izgleda s dobro poznatim Microsoftovim razvojnim alatom Visual Studio (u nastavku teksta VS).
Osim ranije spomenutog preduvjeta da imate aktivnu neku vrstu korisničkog računa za Copilot, na računalu morate imati instaliranu i minimalno propisanu verziju VS-a. To je verzija 2022 s oznakom 17.6 ili novija. U slučaju da zbog nekakvih razvojnih razloga koristite neku od starijih verzija VS-a (na primjer, 2019), Copilot će vas „natjerati“ da konačno napravite zamjenu na najnoviju verziju.
Ako su oba preduvjeta zadovoljena, postupak za aktiviranje Copilota u VS-u ide sljedećim redom:
1. U pregledu proširenja razvojne okoline Extension > Manage Extension potrebno je pronaći proširenje GitHub Copilot i preuzeti ga u razvojnu okolinu.
Primijetite da kod pretraživanja proširenja prema prethodnom pojmu kao rezultat dobijete i (trenutno u probnom statusu) proširenje pod nazivom GitHub Copilot Chat. Ovaj alat je namijenjen za dodatnu interakciju s Copilotom, kako biste na što jednostavniji način mogli postavljati i pitanja o razvojnim problemima te dobivati odgovore na njih.
Nakon preuzimanja Copilot proširenja, ono nije odmah aktivno, nego treba prvo zatvoriti i ponovno pokrenuti VS.
Upravljanje korisničkim računom: Koristi se između ostalog i za integraciju s različitim razvojnim alatima.
2. Zato zatvorite i ponovno pokrenite VS. Tijekom postupka instalacije Copilot proširenja trebate potvrditi da prihvaćate instalaciju paketa uz sve prateće licence. Nakon potvrde potrebno je sačekati neko vrijeme do dovršetka postupka.
3. Poslije ponovnog pokretanja VS-a i pregleda instaliranih proširenja, na popisu bi se trebalo nalaziti i aktivirano proširenje GitHub Copilot. Kao i druga proširenja u VS-u, tako i Copilot proširenje možete po želji ukloniti ili samo privremeno deaktivirati.
4. Preostaje još samo da napravite i zadnji korak, a to je povezivanje VS-a s vlastitim GitHub korisničkim računom. Za to je potrebno izabrati naredbu File > Account Settings… nakon čega se otvara dijaloški okvir s pregledom podataka o korištenim licencama i korisničkim računima u VS-u.
Na ovom mjestu potrebno je dodati i Copilot korisnički račun što se izvodi pomoću naredbe Add > GitHub.
Kao rezultat izvođenja prethodne operacije, automatski će se otvoriti preglednik na mjestu gdje je potrebno prijaviti se u postojeći GitHub korisnički račun te tako dovršiti povezivanje s VS-om. Na ovom mjestu možete podesiti još nekoliko postavki u vezi s korištenjem programskog koda. Za sada samo ostavite podrazumijevano stanje i napravite potvrdu.
Upravljanje repozitorijem: Dostupno je također preko istog korisničkog računa (npr. kreiranje novog).
Ako je sve dobro napravljeno, ponovno korištenje naredbe File > Account Settings… trebalo bi pokazati da je VS sada u potpunosti spreman za korištenje Copilota tijekom pisanja programskog koda.
Korištenje u razvojnoj okolini
Pogledajmo sad na primjeru kako izgleda korištenje Copilota u praksi. Prvo je potrebno kreirati odgovarajuću vrstu projekta u nekom od podržanih programskih jezika.
U ovom slučaju izabrat ćemo jednostavan primjer kreiranja aplikacije koja se izvodi u komandnom prozoru. Dobro poznata Console App pisana u programskom jeziku C#. Nakon odabira naziva projekta, lokacije na disku i odgovarajuće .NET podrške (dobro poznate stvari svim korisnicima VS-a), automatski će se generirati odgovarajuća verzija projekta te otvoriti u razvojnoj okolini.
Za sada generirani C# kod nema neki previše kompliciran dio. Riječ je o uobičajenoj „Hello World“ poruci korisniku aplikacije. Primijetite na ovom mjestu da se u dijelu za pisanje programskog koda u donjem lijevom dijelu pojavila ikona za pristup Copilotu s najvažnijim opcijama (prikazano i na pratećoj slici uz tekst).
// See https://aka.ms/new-console-template for more information
Console.WriteLine(“Hello, World!”);
Pokušajmo sada započeti pisati funkciju kojom namjeravamo u našem projektu kreirati novu datoteku. Započnimo s pisanjem početka odgovarajuće funkcije. Nešto kao:
void CreateFile
Na pratećoj slici uz tekst možete primijetiti kako će razvojna okolina reagirati na takav pokušaj. Automatski će biti predložen dovršetak čitave funkcije. Ako smo zadovoljni predloženim, dovoljno je pritisnuti na tipku Tab, nakon čega prijedlog automatski postaje pravi programski kod.
// See https://aka.ms/new-console-template for more information
Console.WriteLine(“Hello, World!”);
void CreateFile(string path)
{
using var file = File.Create(path);
file.Close();
}
Instaliranje u Visual Studio: Prvo je potrebno pronaći i dodati odgovarajuće proširenje.
Probajmo sada uz pomoć ranije spomenute ikone iskoristiti dodatnu pomoć Copilota za alternative koje bismo mogli iskoristiti u ovoj situaciji. Možemo jednostavno izabrati i prečicu na tipkovnici za izvođenje iste naredbe (Ctrl + Alt + Enter).
Copilot će u odgovarajućem prozoru prikazati nekoliko alternativa za postojeći kod. To su alternative koje u obzir uzimaju i dodatno upravljanje načinom kodiranja znakova kod zapisa u datoteku. Izaberimo jednu od ponuđene tri varijante, nakon čega će funkcija dobiti sljedeći oblik:
void CreateFile(string path)
{
using var file = File.Create(path);
var info = new UTF8Encoding(true).GetBytes(“This is some text in the file.”);
file.Write(info, 0, info.Length);
}
Primijetite na ovom mjestu da nakon preuzimanja izabranog programskog koda od strane Copilota, razvojna okolina prikazuje da u njemu postoji greška! Sljedeći dio „UTF8Encoding“ nije prepoznat kao ispravan!
Međutim, ova greška nije posljedica krivo predloženog oblika programskog koda od strane Copilota, nego nastaje zato što u projekt trenutno nije uključena odgovarajuća biblioteka. Problem koji vrlo jednostavno rješava razvojna okolina uz pomoć dobro poznate naredbe Show potential fixes.
Nakon odabira prethodne naredbe, kao potencijalno rješenje predlaže se uključivanje neophodne biblioteke u projekt, nakon čega je problematična situacija u potpunosti riješena. Završni ispravni oblik koda sada ima sljedeći oblik:
// See https://aka.ms/new-console-template for more information
using System.Text;
Console.WriteLine(“Hello, World!”);
void CreateFile(string path)
{
using var file = File.Create(path);
var info = new UTF8Encoding(true).GetBytes(“This is some text in the file.”);
file.Write(info, 0, info.Length);
}
Primijetite na ovom mjestu da je programer tijekom pisanja koda upisao ukupno samo 15 slova (void CreateFile), a sve ostalo je odradila razvojna okolina u kombinaciji s Copilot proširenjem. Ukupno je nastalo 157 znakova, odnosno čak 187 znakova, ako se u obzir uzmu i praznine te uobičajeno formatiranje C# koda. Ako ovo nije napredak u produktivnosti rada programera, onda ne znamo što je.
Na sličan način, nakon što ste podesili VS (ili neku drugu od podržanih razvojnih okolina), možete „nagovoriti“ Copilota da vam pomogne i u drugim sličnim situacijama. Naprednije mogućnosti korištenja Copilota u različitim prilikama možete otkriti na temelju dostupne dokumentacije, ili na vlastitim pokušajima. I ne zaboravite: vaši pokušaji i vaš programski kod, uz odgovarajuću dozvolu korištenja od strane Copilota, jednog će dana možda pomagati drugim programerima.
Copilot alternative
Uvijek kad se pojavi neki alat koristan i upotrebljiv kao GitHub Copilot, nakon manje ili više vremena pojavi se i odgovarajuća (često besplatna) alternativa. Ako ni zbog čega drugoga, onda zato da se uzme dio tržišnog kolača. Ako se u obzir uzme ukupan broj programera u svijetu, a onda na temelju toga vrlo pesimistički postotak onih kojih su spremni plaćati nekoliko dolara mjesečno za AI podršku, ubrzo se stiže do velikih brojki potencijalnih korisnika. A samim tim i zarade. Spomenimo zato nekoliko alternativa za Copilot, odnosno kako međusobno usporediti njihove mogućnosti.
Upravljanje proširenjem: Copilot proširenje možete po potrebi ukloniti ili samo privremeno deaktivirati.
Alat koji se često spominje u zadnje vrijeme naziva se Microsoft 365 Copilot. Za razliku od nekih drugih alata koji bi trebali predstavljati zamjenu za GitHubov Copilot, ovaj Microsoftov uradak je zapravo svojevrsna nadopuna namijenjena drugačijem tipu korisnika. Prije svega su to korisnici Microsoftovih dobro poznatih „365“ aplikacija, kako bi im se pružio vid pomoći sličan onome koji Copilot nudi programerima.
Kao prave (i uglavnom besplatne) alternative GitHub Copilotu mogu se spomenuti rješenja kao što su Bito, Amazon CodeWhisper, Blackbox AI, Codeium, Cody itd. Detaljnija međusobna usporedba navedenih alata prelazi okvire ovog teksta, ali vas za kraj možemo uputiti na dva dobra izvora za daljnje proučavanje spomenutih alata i međusobnu usporedbu:
1. https://bito.ai/blog/free-github-copilot-alternatives-for-vs-code/
Detaljna međusobna usporedba desetak sličnih AI alata, kojoj jedini nedostatak može biti to što je pripremljena od strane proizvođača proizvoda Bito, pa možda malo „navlači“ na njegovu stranu.
2. https://sourceforge.net/software/compare/
Web adresa za međusobnu usporedbu različitih kategorija softvera, što znači da možete usporediti i alate za pomoć kod programiranja. Na primjer, Copilot i alate navedene na ranije spomenutoj „bito“ adresi.