Ako se bavite programiranjem, postoji velika šansa da ste već umorni od pisanja ogromnih aplikacija i hrpe dugačkih metoda/procedura koje vam trebaju. I sigurno ste se zapitali kako bi bilo super kada bi netko sjedio pokraj vas i pomagao vam u tome. Vjerojatno bi sve išlo brže i imali biste manje bugova.
Iako GitHub Copilot nije prava osoba koja će sjediti pokraj vas i pomoći vam u “pair programmingu”, moguće je da će vam pomoći tijekom programiranja. Radi se o AI (engl. Artificial Intelligence) alatu koji vam može pomoći u pisanju koda. Točnije, GitHub Copilot vam može preporučiti određeni broj linija koda, te vam završiti metodu koju ste, recimo, upravo počeli pisati.
Zvuči zanimljivo, zar ne? U nastavku teksta ćemo vidjeti što je GitHub Copilot, kako radi i kako ga možete integrirati u vaš posao.
Što je GitHub Copilot i kako radi?
Kao što vjerojatno znate, GitHub je kompanija koju je Microsoft kupio prošle godine. Iako su mnogi mislili da je to loše, mi smo se uvjerili da nije. Microsoft je iskoristio partnerstvo s OpenAI startupom koji im je pomogao razviti GitHub Copilot i učinili su GitHub boljim nego što je to prije bio.
Copilot je programska ekstenzija koju možete koristiti prilikom programiranja, a super radi i unutar Visual Studio Codea. Isto tako, možete ga koristiti i online ako koristite GitHub Codespace.
Meet GitHub Copilot – your AI pair programmer. https://t.co/eWPueAXTFt pic.twitter.com/NPua5K2vFS
— GitHub (@github) June 29, 2021
AI skenira milijarde linija programskog koda koji su pohranjeni na otvorenim platformama, te unutar GitHub repozitorija, te vam potom mogu preporučiti kako da vaš program, odnosno aplikaciju, učinite boljom. Recimo da pišete određenu metodu. AI će pretpostaviti što želite napraviti s njom, te će vam preporučiti kako bi ta metoda trebala izgledati. Nekada će vam preporučiti jednu liniju koda, nekada cijelu metodu.
Kako ga budete koristili, tako će Copilot postati bolji i precizniji s onime što vam preporučuje. U nekom idealnom scenariju, vi ćete započeti pisati metodu – dati ćete joj ime, ulazne i izlazne parametre, a Copilot će vam preporučiti kako bi metoda trebala izgledati. Ili će vam preporučiti kako da napravite određene izmjene kako bi vaš kod imao manje bugova ili jednostavno bio “bolji”. Bolji je naravno širok pojam. Na vama je da te sugestije prihvatite ili ih jednostavno ignorirate.
Samo da budemo jasni – Copilot nije jednostavni “autocomplete” program. On ne stvara za vas aplikaciju ili slično. To je alat koji gleda kontekst vaše aplikacije, te vam pomaže u manjim dijelovima koda da bude bolji ili da ga brže napišete. I dalje ćete vi morati odraditi veći dio posla.
Što će Copilot učiniti za vas?
Nažalost, Copilot nije stroj iz budućnosti koji ima odgovor na sva vaša pitanja. On će jednostavno gledati ono što vi pišete, zatim će pogledati ono što je on “naučio” iz milijardi drugih linija koda koje su mu dostupne, te će vam sugerirati određene promjene ili cijelu metodu koja vam treba. Nekada će vam samo sugerirati što trebate iduće napisati.
Copilot, barem po riječima GitHuba, razumije širok spektar jezika i frameworka. Da li podržava i vaš, to ćete morati sami otkriti. Ali ako koristite mainstream jezike i frameworke, velika je šansa da će vam pomoći.
Tehnički preview pokazuje da vam Copilot može pomoći ako radite s Pythonom, JavaScriptom, TypeScriptom, Rubyjem, Go-om …
Vaš inteligentni virtualni partner će izvući kontekst aplikacije iz vašeg koda, te vam preporučiti ono što on misli da je najbolje. Naravno, to ne znači da je u pravu i da je to najbolji “fit” za vas. Ali s vremenom, kako ga budete koristili, bit će sve korisniji.
AI će također pratiti one izmjene koje prihvatite i one koje odbijete. To će isto učiti i od milijuna drugih programera koji ga koriste. Da li je to dobro ili loše, vidjet ćemo u budućnosti. Ono što morate znati je da ako, recimo, imate neki repetitivni kod (op.a. kojeg ne biste trebali imati, ali svi imamo!), Copilot će vam pomoći da to brzo kopirate i dovršite. Isto tako će probati po imenu metode zaključiti što želite napraviti s određenom metodom. Ako ni to nije dosta, preporučit će vam i nekoliko testova s obzirom na probleme koje bi mogli imati. Sumnjamo da će moći “uhvatiti” sve potencijalne rubne slučajeve (engl. edge case), ali možda nas iznenadi.
Kada je Copilot najavljen, mnogi u programerskoj zajednici su jedva dočekali da ga probaju jer bi ovo mogla biti “velika stvar”.
Što programeri kažu o Copilotu?
Developeri, koji su probali Copilot, kažu da im je on olakšao posao, uštedio hrpu vremena i da su se bolje mogli fokusirati na posao.
Ako ne vjerujete nama na riječ, slobodno pogledajte društvene mreže. Puno njih je podijelilo svoja iskustva na Facebooku i Twitteru. Mnogi čak kažu da su im Copilotove sugestije vrlo precizne i korisne, da im štedi vrijeme kod pisanja repetitivnog koda i slično. Sve ono što smo i mi nabrojali u ovom tekstu.
I've been testing #GitHubCopilot in Alpha for the past two weeks. Some of the code suggestions it comes up with are eerily good.
Here's a thread with some examples that I found surprising. Will update with new examples over time. https://t.co/lD5xYEV76Z
— Feross (@feross) June 30, 2021
“Copilot is one of the top three tech innovations of the 2020s” – u seriji tweetova, napisao je to senior researcher iz Microsofta, koji prati GitHub i OpenAI od Samog početka.
So stoked to finally discuss Copilot!
I've used it inside MSR for months, watched it evolve, and discussed collabs.[Disclaimer: the tech is by the amazing @github/@openai, I'm an informed observer.]
Not exaggerating, Copilot will be in top-3 tech developments of 2020s 🧵👇 https://t.co/aoQMfpSgtT
— Alex Polozov (@Skiminok) June 29, 2021
Ukratko – programeri diljem svijeta se slažu u jednom, a to je da će ovakvi AI virtualni partneri ostati s nama u budućnosti. Naravno, većina njih je izrazila skepsu koliko koda zapravo AI može sam napisati. Ali da će vam pomoći u svakodnevnom radu, to definitivno hoće.
Može li Copilot zamijeniti programere?
GitHubov CEO – Nat Friedman – je rekao da je Copilot “samo” alat za povećanje produktivnosti koji će vam pomoći da kod koji pišete, napišete brže i preciznije s manje grešaka. Također, vjeruje da će AI alati ovog tipa tek doći u svijet programiranja, te da ti isti alati ulaze u novu fazu. Ali ne – oni neće zamijeniti programere. Programer rješava stvarne probleme, AI mu samo asistira u tome.
Kada vas netko plaća da programirate, vaš posao nije samo pisanje koda. Vi uz pomoć koda rješavate određeni problem kojeg netko ima, te radite aplikaciju po određenim zahtjevima i specifikacijama. AI pomaže, kao što smo rekli, da to radite bolje i brže.
AI ne razumije klijentske zahtjeve, ne zna koji problem rješava. Developer je taj koji mora razumjeti praktički svaku liniju koda. Ista stvar je s Emailovima, IM aplikacijama i slično. To su alati koji povećavaju produktivnost. Nekada ju i smanje, ali u globalu pomažu da budete produktivniji. Copilot nije ništa drugačiji od tih alata.
Copilot je tu da vam asistira
Kada radite kao programer, uvijek imate određene rokove. Nije li onda dobra stvar što imate virtualnog asistenta koji će vam ubrzati pisanje koda, kako bi stigli sve obaviti na vrijeme?
Copilot inicijalno pokazuje veliki potencijal, ali je još uvijek u ranoj fazi razvoja. Zato su i ljudi iz GitHuba oprezni, jer znaju da Copilot može preporučiti i krivi kod. Zato biste vi trebali provjeriti i istestirati ono što ste napisali uz pomoć AI-ja. On vam je asistirao, pitanje je da li je to dobro ili ne.
Stoga, ako programirate i ako Copilot podržava programski jezik koji vi koristite, slobodno ga isprobajte. Možda vam se svidi i možda vam bude koristan.
Piše: B.P.