Intervju

Može li se uz pomoću ChatGPT-a, bez predznanja, izraditi funkcionalna aplikacija? Donosimo primjer

Sandro Vrbanus nedjelja, 20. kolovoza 2023. u 08:00

Poznati domaći IT poduzetnik izradio je i objavio iOS aplikaciju, a da za to nije imao nikakvo predznanje, samo uz pomoć ChatGPT-a. Doznali smo detalje, a za komentar upitali iskusnog iOS developera

Nedavno je IT poduzetnik Hrvoje Prpić na Facebooku objavio kako eksperimentira s programiranjem putem ChatGPT-a, da bi samo koji tjedan nakon toga podijelio i link s App Storea na gotovu aplikaciju – svoj prvi app za iOS, nastao bez ikakvog iskustva i predznanja u programiranju. Zainteresirali smo se za taj slučaj, pa smo od njega doznali detalje o procesu izrade aplikacije i tome kako se netko, tko nije developer, snašao u tim vodama. Aplikacija Question GPT dostupna je inače na App Storeu, potpuno je funkcionalna i nudi jednu jednostavnu uslugu: omogućava korisniku da ChatGPT-u zadaje upite glasom, bez registracije i plaćanja.

Nakon našeg intervjua za komentar smo se obratili i iskusnom iOS developeru, koji nam je ukratko "recenzirao" Prpićevu aplikaciju. Neizbježno, pitali smo ga i hoće li ovakav trend pojave "citizen+AI developera" utjecati na "prave" developere i kako se oni uopće mogu usporediti…


"Citizen developer" Hrvoje Prpić

Što Vas je motiviralo da se okušate u programiranju za iOS iako, kako kažete, to nikada niste radili?

Dosta sam proučavao ChatGPT, čitao razne članke u kojima se pričalo kako će ChatGPT preuzeti jako puno poslova, među ostalima i poslove developera. Kako sam do prošle godine bio uvjeren da je upravo posao developera posao budućnosti, jer je sve više aplikacija koje developeri trebaju održavati, krenuo sam u istraživanje koliko je to stvarno dobro. Odabrao sam iOS jer sam Appleov korisnik, a i to baš nikada nisam radio. Osim toga, čuo sam da je za iOS dosta teško raditi programe, pa je to time bio još veći izazov.

Opišite nam ukratko proces nastanka aplikacije Question GPT. Što biste izdvojili kao najveći izazov?

Proces je tekao ovako. Prvo sam mu postavio sljedeće pitanje, sve na hrvatskom: "Želio bih napraviti aplikaciju za iPhone koja bi pristupala ChatGPT 4 putem API-a i imala mogućnost komunikacije sa Siri, da mogu putem Siri pitati nešto i da mi ChatGPT putem Siri odgovori natrag. Možeš li mi postaviti dodatna pitanja i napraviti plan izrade aplikacije i kôd za aplikaciju?"

I tako je to krenulo. ChatGPT je postavljao pitanja, ja sam odgovarao, na pitanja za koja nisam znao odgovor sam mu rekao da ne znam i da ne razumijem što me pita. Kad smo bili gotovi, ChatGPT je izbacio ovaj kôd koji sam zalijepio u program koji mi je on rekao da skinem:

Problemi su bili sljedeći. S obzirom da postoje modeli 3.5 i 4, a da je prvi besplatan, krenuo sam prvo s 3.5 i dobio dosta netočnog koda. Trebalo mi je neko vrijeme da shvatim da se programirati može samo s verzijom 4, a 3.5 se može koristiti samo za sitnice poput "Formatiraj mi ovo na taj i taj način". Osim toga, četvorka je tada bila daleko sporija negoli je danas i vrlo često je prestajala raditi zbog ograničenja. Danas je to ograničenje podignuto, odgovori su brži i sve je daleko lakše nego tada. Ali je i tada bilo upotrebljivo.

Kako koristite aplikaciju? Koliko može biti korisna i drugima?

Aplikacijom se redovno služim za sva ona kratka pitanja koja bih postavio Googleu poput "Što je CRP u krvi i čemu služi" ili nekih interesantnih pitanja koja postavite kad izlazite iz kina "Kada je umro Robert Openheimer i zašto?". Aplikacija ne odgovara dobro na pitanja iz današnjeg doba, ali je odlična za sve sto se dogodilo prije 2021. godine.

Koliko je otprilike vremena utrošeno na programiranje?

Rekao bih oko 100-tinjak sati. Recimo, aplikaciju za Apple Watch sam napravio za sat vremena, ali sam na Siri potrošio 2-3 dana jer ChatGPT ne zna da je izašla nova verzija koda za Siri, a tada je bio još preslab da može prožvakati njezinu dokumentaciju. Danas bi to vjerojatno išlo lakše.

Je li bilo i nekog financijskog troška? Može li si svatko priuštiti takvu "avanturu"?

Bilo je, ali nije bio značajan. Godišnja licenca za Apple developera je 99$, a treba i plaćati account za ChatGPT 25$ mjesečno. Osim toga, aplikacija je besplatna, pa ja plaćam promet za sve korisnike. On će iznositi od par dolara na početku, do par stotina dolara, ako se aplikacija pokaže interesantnom.

Hoćete li nastaviti s nadogradnjama aplikacije ili je ovo bio jednokratni eksperiment? Možemo li očekivati, na primjer, Android verziju?

Nastaviti nadograđivati ovu aplikaciju sigurno hoću, ali je neću raditi za Android jer je jako prilagođena Apple alatima. Nema registracije, a to je moguće jedino napraviti kroz Apple CloudKit, koji je isključivo za Apple korisnike.

Planirate li naučeno iskoristiti kako biste izradili još koju aplikaciju za svoje (privatne ili poslovne) potrebe?

Nisam siguran da ću programirati nove aplikacije, ali ću sigurno nastaviti raditi na ovoj. Ovo je bio eksperiment da se vidi koliko ChatGPT može pomoći u radu developerima, ali me programiranje počelo toliko zabavljati da stvarno uživam u njemu. Bitno je naglasiti da su ovo počeci i da pravi alati tek dolaze te da će oni developeri i agencije, koje se ne prilagode, biti u velikim problemima. Ovim bih putem pozvao sve agencije i developere da dobro prate nove tehnologije jer se najavljuju novi alati koji mogu ubrzati rad developerima za 2-10x.


Komentar eksperta - iOS developer Karlo Levak

Nakon što smo upoznali proces izrade i testirali aplikaciju, vidjeli smo da ona radi sasvim korektno. Njome možete ispitivati Chat GPT (za sada GPT-3.5, uskoro 4), bez plaćanja, glasom, i na hrvatskom jeziku, pa vrlo brzo dobiti koherentne odgovore. Budući da znamo da nije lako napraviti aplikaciju, ali i da je riječ o tehnički prilično jednostavnom rješenju, upitali smo osobu s iskustvom da nam rastumači nekoliko nedoumica. U pomoć nam je uskočio Karlo Levak, voditelj softverskog razvoja u domaćoj kompaniji Sofascore, iskusni iOS programer.

Karlo, vidio si Prpićevu aplikaciju i početni kôd. Kako bi on prošao na pravom reviewu?

Kôd je formatiran i napisan na juniorskoj razini, što je i očekivano od jednog ovakvog alata u začetku. Koliko vidim nedostaje dio koda za pozive prema API – u, ali vjerujem da je to također korektno generirano. Kada bismo dali junioru da napiše aplikaciju ovakvog tipa, prvenstveno bismo gledali način na koji je kôd formatiran, podijeljen u logičke cjeline, metode, klase itd., Ovdje toga nema ili meni nije vidljivo, stoga je ovo doista početnički kôd koji bi napisao junior početnik i nema se tu što previše dodati, ne bi prošao moj review u ovom obliku i završio na produkciji.

Zašto je tome tako? Koja je razlika programera juniora i ChatGPT-a?

Dobar developer se ne odlikuje samo u "rješavanju" problema kroz kôd nego i u tome kako je to rješenje logički koncipirano, je li kôd čitak i projekt pregledan, kako bi omogućio jednostavnu daljnju nadogradnju i održavanje. Naposlijetku i najbitnije, koliko je kôd / aplikacija optimizirana kako ne bi trošila previše resursa uređaja na kojem se vrti. Iz primjera ne vidim tu razinu razmišljanja i vjerujem da današnja inačica AI još za to nije sposobna na toj razini. Kod mentoriranja juniora, nije bitno samo "da kôd radi" bitan je i način na koji on radi kako je opisano ranije. Od juniora očekujemo pomake u smjeru boljeg koncipiranja rješenja u poljima koja su opisana, a stariji kolege moraju takva rješenja izbacivati "iz prve".

U čemu, dakle, danas AI može pomoći programerima?

AI je danas alat na razini koja nam može pomoći da ne moramo raditi dosadne i repetitivne poslove u programiranju i kucati "boilerplate" kôd, a također i da ubrzamo rješavanje nekih osnovnih problema i operacija. Ali – AI danas nije na razini da bi mogao zamijeniti developera u nekima od najboljih i najinovativnih tvrtki na ovim prostorima, kao niti na svjetskoj razini.

Svakako se treba prilagoditi i koristiti jedan takav alat kao pomoć i da bi se ubrzao rad, ali vjerujem da još neko duže vrijeme neće moći zamijeniti dobrog developera. Danas je AI više na razini "susjedovog malog" koji može "sklepati" jednostavnije aplikacije u impresivno brzom roku, da budu spremne za produkciju i pomoći oko rješavanja manjih, specifičnih problema. I dalje to nije alat koji bi napravio velik projekt od 0 do production ready aplikacije, koju bi bilo moguće jednostavno nadograditi i održavati.

Karlo Levak, Sofascore, Head of Software Development
Karlo Levak, Sofascore, Head of Software Development

Kako bi usporedio proces nastanka ove aplikacije s klasičnim pristupom?

S obzirom na to da Hrvoje nije imao nikakvo predznanje u programiranju ili iOS programiranju, razviti i objaviti aplikaciju u 100-tinjak sati je doista impresivno. Kada bi to osoba bez ikakvog predznanja išla raditi na "stari" način, vjerujem da bi joj trebalo 100-tinjak sati samo za naučiti osnove programiranja, osnovne sintakse programskog jezika Swift i alata koji se koriste za iOS razvoj. Nakon toga bih rekao da bi onda aplikaciju osoba napravila i objavila za dodatnih 50-60 sati, na istoj razini kompleksnosti i razini koda kao što je ovdje prikazana.

I za kraj, koje je tvoje viđenje vezano za pojavu "citizen developera" koji koriste AI alate?

Budući da je zadnjih godina IT doživio svojevrsni boom u zapošljavanjima i manjak kadra, vjerujem da su mnogi jedva i s veseljem dočekali jedan ovakav alat. Nažalost, moram im razbiti iluziju da će radi ovoga nestati developeri. Jedan ovakav alat će svakako pomoći pročistiti današnje tržište rada u IT-u, u kojem ima čak i raznih prekvalificiranih vozača kamiona, pekara itd., koji su ovdje došli jer su čuli da se u IT-u dobro zarađuje. No, oni nemaju strast i želju za programiranjem i žele to raditi samo iz koristi. U tom kontekstu ćemo svakako vidjeti da će AI zamijeniti dio ovakvog radnog kadra, ali senior developere i developere sa strašću za programiranjem, koji svakodnevno inoviraju kako na samom polju razvoja softvera, tako i u poslovnoj domeni u kojoj razvijaju aplikacije, vjerujem da AI neće moći zamijeniti još barem neko dulje vrijeme.