Što je Copilot i kako će redefinirati budućnost programera?

Autorica: Milena Radivojević, Global Developer Content Specialist u Infobipu

Jeste li čuli za Copilote?

To su alati koji koriste umjetnu inteligenciju kako bi automatizirali zadatke, generiraju kod i pružaju prijedloge na osnovu unosa na prirodnom jeziku, često koristeći velike jezične modele (LLM) kako bi razumjeli kontekst.

Razgovarali smo s Emanuelom Lacićem (Principal Engineer, Infobip) o tome što on misli o ovom “virtualnom asistentu za programere”.

Kako Copiloti pomažu u kodiranju?

Copiloti mogu značajno povećati produktivnost i učinkovitost programera, tvrdi Emanuel. “Mogu automatizirati ponavljajuće zadatke, predložiti bolje prakse kodiranja za postojeći kod ili smanjiti vrijeme provedeno na otklanjanju greški (bugova)“, kaže on.

Lačić također vjeruje da će se Copiloti specijalizirani za kodiranje usmjeriti na poboljšanje prijedloga koda koji uzimaju u obzir kontekst (npr., razmatranje nedavnih promjena u kodu koje mogu pomoći u oblikovanju konačnog rješenja).

Također, otkrivanje greški (bugova) u realnom vremenu smatra se ključnom značajkom koju mnogi razvojni alati prioritetno razvijaju, jer značajno poboljšava produktivnost.

Copiloti, dodaje Emanuel, također mogu pomoći u automatizaciji ponavljajućih zadataka, što može promijeniti uloge i odgovornosti programera.

Refaktoriranje postojećeg koda, pisanje boilerplate koda i priprema popratne dokumentacije dio su svakodnevice svakog programera. To su zadaci koji se često ponavljaju i koje je, barem djelomično, moguće automatizirati uz pomoć Copilota.

Zahvaljujući tome, programeri se mogu više posvetiti rješavanju složenih problema i strateškim zadacima. No, to također znači da će uloga softverskog inženjera sve više zahtijevati dublje razumijevanje automatski generiranog koda i njegove integracije u arhitekturu sustava.

Pitali smo i Emanuela mogu li Copiloti pomoći programerima u prepoznavanju i ispravljanju uobičajenih grešaka u kodu. Kao primjer naveo nam je GitHubov Copilot.

“Temeljni model treniran je na ogromnoj količini linija koda iz javno dostupnih izvora, uključujući kod iz javnih repozitorija na GitHubu. S takvim znanjem na raspolaganju, temeljni LLM može prepoznati obrasce koji mogu dovesti do pogrešaka ili neučinkovitosti te predložiti ispravke ili bolje alternative.

To ne samo da pomaže u hvatanju pogrešaka u ranoj fazi razvoja, već također može educirati programera o najboljim praksama i mogućim zamkama,“ kaže on.

Uloga programera možda više neće biti ista

Uskoro će Copiloti postati neizostavan dio mnogih razvojnih alata i okruženja.

Prema Emanuelu, njihov će utjecaj biti posebno vidljiv u područjima koja zahtijevaju veliku količinu boilerplate koda, poput razvoja mobilnih aplikacija, ili pri implementaciji složenih algoritama – gdje je ranije bilo potrebno uložiti puno vremena u razumijevanje teorijske pozadine prije nego što bi se algoritam mogao implementirati i testirati.

A mogu li Copiloti dovesti do pojave novih razvojnih praksi ili metodologija?

Da, integracija AI-pokretanih Copilota mogla bi dovesti do razvojnih metodologija koje su interaktivnije i više usmjerene na čovjeka. Ključni faktor u tome je mogućnost dobivanja povratnih informacija u stvarnom vremenu tijekom razvoja. To bi, primjerice, moglo potaknuti agilniji pristup, gdje Copilot djeluje kao svojevrsni recenzent koda u hodu, osiguravajući njegovu kvalitetu.

Međutim, uvođenje značajki poput Copilota donosi i izazove, posebno u pogledu kompatibilnosti s različitim razvojnim okruženjima.

Emanuel također smatra da će s vremenom biti izazovno osigurati relevantnost i točnost prijedloga kako se kontekst projekta mijenja. Osim toga, postavlja se pitanje prihvaćanja i povjerenja korisnika – programeri bi mogli postati skeptični prema automatiziranim prijedlozima, posebno kako se tehnologije razvijaju.

Postoji mogućnost da će se uloge programera djelomično pomaknuti prema zadacima usmjerenima na dizajn i pregled koda. Ipak, tvrtke bi trebale razmotriti kako će to utjecati na njihove razvojne procese i strukturu timova – posebno u pogledu vještina koje programeri moraju već posjedovati kako bi učinkovito surađivali s Copilotima.

Tradicionalne programerske vještine i dalje će ostati relevantne, ali moglo bi biti potrebno razviti nove kompetencije za uspješnu suradnju s AI alatima. To bi, primjerice, moglo uključivati razumijevanje obrade prirodnog jezika i njezinih ograničenja u preciznom prenošenju namjera.

Međutim, Copiloti također dolaze i sodređenim brigama. Više o tome možete pročitati na Infobip Engineering Blogu, a tim Infobipa moći ćete o svemu upitati i na .debugu 2025.