20.07.2021. ·
7 min

Da li je GitHub Copilot zaista najgora stvar koja se desila programerima?

Da li je GitHub Copilot zaista najgora stvar koja se desila programerima?

Ekipa iz Microsoftove GitHub divizije upravo je predstavila novu funkciju pod nazivom Copilot koja sama piše kod – kako programeri to ne bi morali da rade.

Istraživači u Microsoftu i drugim instituacijama godinama pokušavaju da nauče kompjutere da pišu kod. Ovaj koncept i dalje treba da zaživi jer programi koji pišu programe do sada nisu uspeli da postignu traženu svestranost. GitHub Copilot je vredan doprinos ovom trudu jer se oslanja na ogromnu količinu koda u različitim programskim jezicima, ali i gotovo beskrajnu Azure cloud kompjutersku snagu.

Kako tvrde iz Microsofta: „GitHub copilot je AI pair programer koji vam pomaže da brže i lakše napišete kod. GitHub Copilot sam dolazi do konteksta iz komentara, koda i pozicije kursora miša, i potom istog trenutka predlaže pojedinačne linije koda, ali i kompletne funkcije“. Kako programeri prihvataju ove promene ili ih odbijaju, model uči i vremenom postaje još složeniji.

Programiranje uključuje smišljanje ideje u vezi sa tim kako nešto treba uraditi, a potom i implementaciju te ideje, a Copilot je, sudeći po Microsoftu, dobar u drugom delu. Copilot podržava gotovo svaki programski jezik, ali je dizajniran kako bi najbolje radio uz JavaScript, Python i TypeScript.

„Ne želite da prolazite kroz kompletnu Twilio API dokumentaciju. Copilot već zna sve te stvari. Veoma je pouzdan u tome“, izjavio je Greg Brockamn, OpenAi ko-osnivač.

A Microsoftov chief technology officer, Kevin Scott je imao priliku da se i sam uveri u ovo iz prve ruke.

„Copilot može bukvalno da me poštedi ronjenja kroz more dokumentacije kako bih dobio alat da uradim nešto što znam da je moguće uraditi, a to je sjajno za produktivnost. Ne mogu ni da vam opišem koliko sam sati izgubio pokušavajući da pronađem pravi način da uradim relativno prozaičnu stvar samo jer sam morao da prolazim kroz kompleksnost ovih alata“, izjavio je.

Međutim, ma koliko se ovo čini kao sjajna ideja, poput outsourcinga posla koji vam je dao klijent nekom programeru iz Indije za 3 dolara dok vi uživate, postoje i oni koji smatraju da je Copilot najgora ideja u istoiji kompjuterskog programiranja – ikada.

Posebno Brian Lunduke, programer koji je odlučio da detaljno obrazloži svoje nezadovoljstvo Microsoftovim novim proizvodom na svom blogu.

Pogledajte šta ima da kaže:

Sa tehničke strane, Copilot je impresivno postignuće. Sama količina podataka koja mora da bude prikupljena, indeksirana i procesuirana (svaka linija javnog koda na GitHubu), to je zaista impresivno.

AI koji predviđa i kreira kod koji misli da će vam biti potreban je takođe nešto neverovatno impresivno.

Bez obzira na sve navedeno, Copilot je zapanjujuće loša ideja – na toliko nivoa – da je potpuno krajnje zbunjujuće zašto je uopšte stvoren.

I zato ću proći kroz neke od najvećih problema zbog kojih verujem da je Copilot nešto najgore što smo do sada stvorili.

Problem 1: Pronalaženje i popravljanje bagova

Hipotetička situacija: Odlučili ste da napravite novi softer koristeći Copilot kao jedan od svojih alata.

Hajde da pretpostavimo da će Copilot obaviti svoj posao zaista impresivno. Baš kao što je potrebno. Svako malo će ubacivati kod koji vam je potreban, baš onda kada ga želite. To je sjajno jer ste upravo skratili vreme potrebno za razvoj, i to drastično.

Sjajno zar ne!?

POGREŠNO.

Sada imate omanju planinu koda, koji niste vi napisali i koji je isprepletan sa kodom koji ste sami napisali.

Ko je napisao taj kod? Ko zna! Kopiran je iz nekog drugog projekta sa GitHuba.

Da li ima bagove? Sasvim sigurno! Većina kodova ih ima.

Da li će imati problema prilikom interakcije sa ostatkom vašeg koda? Vrlo verovatno? Teško je reći jer taj kod niste smai napisali.

Kada se bagovi eventualno pojave, biće znatno teže popraviti ih jer ćete morati da radite na kodu sa kojim niste nužno upoznati.

Ovo je surova realnost razvoja softvera. Uvek je lakše čitati, razumeti i rešiti probleme sa kodom koji poznajete (posebno ako ste ga sami napisali).

Samim tim, pronalaženje i rešavanje bagova će biti značajno teže i oduzimaće više vremena.

Problem 2: Programiranje nije unos podataka

Postoji veliko neshvatanje toga šta programiranje predstavlja programerima u timu koji je stvorio Copilot.

Pogledajmo samo ovaj tvit.

Osnovna ideja ovde jeste da je Copilot samo prost alat namenjen obavljanju repetitvnih zadataka. Zadataka koje je moguće rešiti prostim alatom, ili uz pomoć ljudskog bića. Sa druge strane, digitron samo obavlja proste matematičke radnje.

Ovo je prilično nečuveno shvatanje programiranja.

Programiranje je fascinantna mešavina inženjerstva i umetnosti. Broj načina na koji različiti developeri pristupaju naizgled prostom problemu je gotovo bezgraničan - sa različitim prednostima i manama na brojne načine, uključujući tu čitljivost koda, veličinu, brzinu, robustnost, fleksibilnost... Samo da nabrojim nekoliko.

Reći da je Copilot za programiranje isto što i kalkulator za matematiku iskazuje duboko neshvatanje barem jedne od ovih stvari.

Problem 3: Težina koda

Ponovno korišćenje, reciklaža, koda iz nepoznatog izvora na GitHubu ne donosi lagan, memorijski i CPU efikasan kod.

Ovo je smešno očigledno.

Problem 4: Problemi sa licenciranjem

Sudeći po jednom korisniku Twittera, GitHub je potvrdio da se kod koji Copilot koristi povlači iz svih javnih GitHub projekata. Bez obzira na njihovu licencu.

„Sav javni GitHub kod je korišćen prilikom treninga. Nismo pravili razliku na osnovu tipa licence koju taj kod ima“.

Drugim rečima, ako koristite Copilot da vam dopunjava kod, ne postoji šansa da znate koje licence su sve uključene, pa čak ni koiko njih.

GPL? MIT? Apache? BSD? Verovatno. Drugi koji su vrlo verovatno nekompatibilni (na neki način sigurno)? Gotovo apsolutno.

Želite da isporučite svoj softver pod specifičnom licencom? Možda čak i kao zatvoreni kod?

Neka vam je sa srećom.

Da li se vaš kod koristi na isti način unutar nečijeg drugog projekta bez odgovarajuće licence ili atribucije? Možda, ko zna!

Legalna noćna mora koju Copilot može da stvori je epskih proporcija. A problem je u tome što je sve ovo bolno očigledno. Zaista nemam reči kako Copilot tim sve ovo nije shvatio i rešio na samom početku.

Sa druge strane, Guillermo Rauch, osnivač Vercela, platforme za frontend developere, je u svom tvitu citirao izjavu iz Copilot tech preview FAQ stranice sledeće: “GitHub Copilot je sastavljač koda a ne mehanizam za pretragu: velika većina koda koju predlaže je jedinstveno generisana i nikada ranije viđena”.

Guillermo je ispod ove izjave samo napisao – “Budućnost”.

Ovo se kosi sa strahovima programera da će Copilot generisati kod koji je identičan kodu koji je generisan pod open source licencom koja ne dozvoljava izvedene radove, koji će potom potpuno bez znanja iskoristiti drugi developer.

Copilot bi jednostavno trebalo obrisati

Neke ideje su prosto loše od samog početka. Copilot je jedna od tih ideja.

Stvoren je da kod bude sporiji, veći i bagovitiji.

Kako bi vremenom umanjio veštine programera.

I ne samo da će stvoriti tornado problema sa licenciranjem softvera... već će i pokazati dubok manjak poštovanja prema hiljadama i hiljadama programera.

Copilot je možda impresivno dostignuće, ali na kraju dana pravi više lošeg nego dobrog.

Da li je Copilot najgora stvar koja se desila programiranju? Ovo je prilično agresivna tvrdnja, ali, ako je bilo nešto gore, trenutno ne mogu da se setim šta bi to moglo da bude.

Bez obzira na sve, jedna stvar je sigurna...

Microsoft bi trebalo da obriše Copilot.

Danas.

Sve što je Brian Lunduke u svom tekstu iznad detaljno naveo naići će na odobravanje dobrog dela programera, pogotovo onih iskusnijih, ali biće sigurno i onih koji će Copilot prihvatiti raširenih ruku zbog određenih prednosti koje će im svakako pomoći pri obavljanju svog posla.

Ipak, bez obzira na strepnje jednog dela programera kao što je Brian Lunduke, i radosti druge, Copilot je svakako veliki korak ka svetu u kom će mnogima programiranje postati značajno lakše.

Ostaje samo da vidimo da li će Copilot povećati kvalitet gotovih proizvoda developera, ili će ga razvodniti usled lenjosti koju će mnogi svakako razviti znajući da pored sebe dragocenog asistenta koji možda nije kreativan, ali zna da izbaci na stotine linija koda kada je to potrebno.

Oceni tekst

4
80 glasova
Uroš Jelić Uroš Jelić

Nekada IT novinar, a sada PR u tehnološkom svetu koji svaki dan gleda da otkrije i nauči nešto novo i to prenese na druge (silom ili milom). Pogotovo kada je potreban savet za kupovinu telefona.

9 komentara

Radosav Markovic Radosav Markovic 22.07.2021.
0
0

Hvala Vam što se po nekad javite. Hvala vam što nam ponekad pošaljete da pročitamo nešto.  Ja imamam dosta godina (69) i dugo programiram. Počeo sam sa nekim COBOLOM, prko CLIPERA(tu sam najbolje zaradio - napravio sam kuću) i sada c++,c# a za male firmice sa Visual foxpro - koji je još živ. Ja sam završio teorisku matmatiku a specijalizirao Algebru. Ne možemo mi bez programiranja-bez obzira na godine. Uvek ću rado odgovoriti na svako vaše pitanje...Pozdrav

Gg Gg 22.07.2021.
0
1

Programiranje nije umetnost, ne treba ti talenat, svako moze da nauci da programira.

Dragan Dragan 23.07.2021.
1
0

Ti sigurno radis wordpress...

gg gg 30.07.2021.
0
1

Preko 25 godina sam u ovome, ako bas oces da ga merimo padas 100%

aa aa 23.07.2021.
0
0

ko zna sta ti smatras programiranjem

gg gg 30.07.2021.
0
0

Tehnicku nauku, ne umetnost

Ja Ja 25.07.2021.
0
0

Zali bize takvog koda i takvih programera.Moze i svaki konj da trci ali nije svaki konj trkacki konj.

gg gg 30.07.2021.
0
0

Da, ima losih programera, ali sta je tu problem? Ako ti smeta to sto ti losi programeri oduzimaju posao ili moras njima da se bavis, definitivno nisi na pravom mestu. Uci i podizi svoju igru na visi nivo ili pali u umetnike, gde ces moci da budes unikatna pahuljica.

Sasa Gasparovic Sasa Gasparovic 11.04.2023.
0
0

Isto tako i svako moze da slika ili peva, ali sta i kako?

Iz ove kategorije

Svi članci sa Bloga

Slični poslovi

Povezane kompanije po tagovima