Komentar: Programeri i njihova budućnost
Jensen Huang, predsednik kompanije NVIDIA, je na World Government Summit-u izjavio da danas, uz pomoć AI alata, svako može da bude programer i da ova profesija nema dalekosežnu budućnost. Da li programeri treba da se zabrinu i da li mladi i dalje treba da se orijentišu ka učenju tehnike i umetnosti programiranja?
Kompaniji NVIDIA je još u vreme buma Bitcoin-a „pala sekira u med“ pošto su njihove grafičke kartice počeli masovno da kupuju ne samo igrači, nego i rudari kriptovaluta. Taman je taj bum prošao, a pojavljuje se ogroman posao treniranja sistema veštačke inteligencije, gde je hardver grafičkih kartica ponovo čest gost. Zahvaljujući tome, NVIDIA je žestoko napredovala i na berzi pa reči njihovih rukovodilaca izazivaju značajno interesovanje javnosti. Naročito kada se radi o ovako kontraverznim temama.
AI programer?
Nezahvalno je predviđati budućnost, naročito na duži rok, ali svaki programer koji je isprobao ChatGPT i srodne sisteme neminovno je impresioniran – na osnovu preciznog opisa zadatka, AI će zaista generisati potreban kod koji čak ponekad i funkcioniše „iz prve“. Neko ko, poput mene, decenijama radi na razvoju softvera za potrebe korisnika odmah će se „saplesti“ na frazu „preciznog opisa zadatka“ – ako neko misli da će korisnik u sledećih 100 godina umeti da precizno opiše ono što mu je potrebno, onda taj verovatno veruje u Deda Mraza i vilu Zvončicu. Razumevanje potreba korisnika i uklapanje tih potreba u nešto što se možda može programski realizovati je zadatak za vrhunski kvalifikovane IT stručnjake. Vrednost takvog stručnjaka na tržištu rada svuda u svetu je veoma visoka.
Takvi sistem analitičari, doduše, gotovo uvek počinju karijeru kao junior programeri, pa postepeno napreduju na senior i više pozicije. Ukoliko bi AI zamenio juniore, veliko je pitanje kako bi mediori, seniori i analitičari mogli da razviju svoje sposobnosti, i to bi predstavljalo veoma ozbiljan problem. A trend manjeg zapošljavanja ili čak otpuštanja junior programera već je primećen u mnogim sredinama, čak je i u (USA) firmi u kojoj radim objavljeno da u narednom periodu neće biti zapošljavani programeri-početnici.
Takva odluka predstavlja pritisak na medior developere, koji sada treba da koriste AI kao alat koji zamenjuje juniore. To je za njih vrlo neprijatan zadatak, zato što ChatGPT ume da piše, ali ne i da testira programe. U takvom programiranju on je vaš pomoćnik, ali vi ste njegov rob, jer morate da isprobavate svaki program koji „kopilot“ napiše, pa da mu objašnjavate šta tu ne valja da bi on eventualno ispravio grešku… ili napravio još veću. Verujem da će ubrzo biti napisan odgovarajući softver koji sam proba svoj softver i upoređuje rezultate sa nekim zadatim test-vrednostima (kao kada se studenti na ispitima testiraju kroz Moodle platformu), ali ostaje pitanje šta kada se „pomoćnik“ beznadežno zaglavi, što se doduše dešavalo i junior programerima.
Programi i jezici
Problem potencijalnog prelaska na AI alate se naslanja na problem obrazovanja programera, gde su se stvari poslednjih decenija veoma promenile, ne nužno na bolje. U moje vreme programiralo se na C-u i tu nije bilo mnogo dilema – ako volite malo veći komfor i spremni ste da proučavate jedan mnogo veći i mnogo kompleksniji jezik, prelazili ste na C++ i… to je to. Kompletan Internet i svi računari ovoga sveta počivaju na C-u. Windows i Unix / Linux su pisani na C-u, uz povremenu upotrebu asemblera.
Korisničke stvari se danas pišu u drugim jezicima, ali opet do neke granice. Svaki Apple developer će vam reći da je Swift „prava stvar“, ali čim mu zatreba da obrađuje neke podatke koji brzo dolaze i odlaze, vratiće se Objective-C-u. Uz sve zamerke koji se (sa pravom ili ne) upućuju C-u – a kažu da sada čak i Bela kuća preporučuje „dvorskim programerima“ da se manu ovog nesigurnog jezika – programer mora da zna C. Tačka.
Pokušaj da se napravi „pitomiji“ univerzalni jezik doneo je Javu, koja je danas veoma važna za programere, iako je performanse ne preporučuju za sve primene. A kada već žrtvujemo performanse smatrajući da je hardver znatno jeftiniji od programera, možemo sasvim lepo da pređemo i na Python, koji je neverovatno zgodan jezik za koji postoje sve zamislive biblioteke. Šta god vam treba, neko je to već napravio i samo se treba na to pozvati. Tako gajimo generacije programera koji umeju samo da „slažu kockice“.
Smatra se da danas postoji preko 9000 programskih jezika, među kojima ja uvek izdvajam GOLANG (kada su potrebne performanse), C#, brojne jezike prilagođene Web-u i bazama podataka… Šta god da izaberete, biće posla za vas ako se potrudite da programirate sa razumevanjem, a ne da udarite u zid kad god naiđete na nešto za šta ne postoji gotova biblioteka. Takve „bibliotekare“ AI zaista može lako da zameni.
Autor: dr Sava Zdravković