Svaki fakultet računarstva predaje Javu, ali ni iz jednog ne izlaze gotovi Java programeri

Kako je Java evoluirala od revolucionarnog do uhodanog jezika i zašto i dalje s fakulteta ne izlaze “gotovi” Java developeri popričali smo s Domagojem Madunićem, koji je CEO tvrtke AG04 i jedan od pionira Java razvoja u Hrvatskoj.

Domagoj Madunić jedan je od pionira razvoja u Javi u Hrvatskoj.

Programeri Javu uglavnom ili vole i nabrajat će sve njene mogućnosti i primjene, ili je jednostavno mrze, ali u svakom slučaju zauzima vodeće mjesto među bekendaškim programskim jezicima, a Java developeri uvijek su traženi.

“Write once, run anywhere”

Nije teško razumjeti zašto je Java toliko popularna, još od kasnih devedestih pa sve do danas. Domagoj Madunić, CEO tvrtke AG04, jedan od pionira Java razvoja u Hrvatskoj, prisjeća se kako se prvi put susreo s Javom, jezikom koji je obećavao gotovo nemoguće – kompatibilnost:

U godinama 1999-2000 bio sam CTO i suvlasnik startupa (da, i tad su postojali startupi) koji se bavio turističkim bookingom na Internetu. Programirao sam u C/C++. Točno u to vrijeme pojavila se Java 2 sa svojom krilaticom “Write once, run anywhere” i tada je ta ideja sama po sebi bila prilično revolucionarna. Tada su svi imali isti problem, a to je nekompatibilnost jezika na različitim platformama. Oni koji su radili na Unix-u obično su programirali u C-u, a to što su iskompajlirali u C-u nikako nije htjelo raditi na Windowsima… Java je tada ponudila rješenje za taj problem i taj su model kasnije iskopirali brojni drugi programski jezici.

Druga motivacija za prihvaćanje Jave kao preferirane razvojne okoline bila je tadašnja velika ekspanzija Interneta i Weba, dodaje Domagoj, a najzrelija platforma za razvoj prvih web aplikacija bila je upravo Java.

Java je danas – svugdje

Od kraja devedesetih do danas se puno toga promijenilo – danas je mnogo jezika koji nude istu premisu kao i Java, a i Domagoj više ne radi u startupu. Trenutno vodi firmu od 55 ljudi kao CEO i CTO, pa iako se “ne može izliječiti” od programiranja, ima i neku drugu perspektivu. Java ga više ne privlači jer je “revolucionarna”, već upravo zato što je uhodana:

Danas, moja motivacija leži u apsolutnoj raširenosti Jave u segmentu enterprise razvoja softvera. Java je danas izrazito zreo ekosustav, s nevjerojatnim bogatstvom biblioteka. Trenutno ne postoji neki drugi eko sustav s tolikom širinom. Java je zrela i razigrana, to je nevjerojatno moćan karakter za jedan programski jezik.

Jedna od velikih prednosti, ističe Domagoj, je dostupnost znanja i dostupnost developera u određenoj razvojnoj okolini. Java je tu i dalje dominantno #1 po popularnosti, a samim tim je i lakše ekipirati se.

Najveći broj velikih kompanija razmišlja kao i mi, Java je svugdje. Nije slučajno da je Google odabrao Javu za Android development, koristeći tako činjenicu da na svoju mobilnu platformu odmah privuče ogroman broj developera.

U Ag04 velik broj projekata temelji se upravo na Javi.

NodeJs, Ruby, GoLang, Python, Scala, Kotlin, jezika je svakim danom sve više – pa ima li mjesta za sve?

Fora je što se razvija puno novih programskih jezika. Radimo u industriji koja se treba stalno nanovo otkrivati, jer je još uvijek jako mlada. Ove jezike koje navodite dijelim u dvije grupe: one koji se izvršavaju unutar Java virtualne mašine i one koji se izvode u drugim okolinama. Java virtualna mašina je najvažnija stvar u Java svijetu i dobro je da se na njoj pojavljuju novi jezici koji demokratski postavljaju nove standarde. Neke od tih standarda prihvati i sama Java, a neki ostanu implmentirani samo u npr. Scali i Kotlinu što im daje određenu diferencijaciju. Osobno sam koristio Scalu i Kotlin unutar JVM-a i sviđaju mi se.

Ima mjesta za sve, kaže Domagoj – uglavnom su i kompatibilni s ostatkom Java ekosustava pa svi idu pod istu mentalnu mapu.

Od jezika koji se razvijaju van JVM-a simpatičan mi je “Go” programski jezik i imamo projekte na njemu. Donosi modernu razvojnu okolinu uz kvalitetnije performanse. Python je pronašao svoje mjesto u sistemskom managementu i data scienceu, a i NodeJs ima svoje mjesto pod suncem. Sve ove jezike mi koristimo u timu, ali Java ipak rješava najveći broj naših projekata i vjerujem da će tako ostati sljedećih 5 godina.

Svaki student “zna” Javu – ali nije Java programer

Poznavanje osnova Jave nije dovoljno da bi se netko prozvao Java programerom.

Činjenica da je Java “svugdje”, znači i da je zastupljena na gotovo svakom fakultetu koji se bavi programiranjem i računarstvom, no kako ističe Domagoj, to ne znači da s njih izlaze “gotovi” Java developeri:

Na većini tehnoloških fakulteta koji imaju računalski program, postoji kolegij iz programiranja u Javi. Problem većine fakulteta je što polaznici tih kolegija nauče osnovu Jave, a razvijanje bilo kakvih poslovnih projekata u Javi zahtijeva mnogo veće kvalifikacije od samog poznavanja jezika. Dakle, na tržište rada praktično ne izlazi gotov proizvod, čak ni za startnu juniorsku poziciju. Sveučilišta će producirati čovjeka koji će dobro poznavati sam jezik Java, ali to nije dovoljno. Postoje još dva seta parametra koje treba uzeti u obzir, a to su poznavanje Java ekosustava i poznavanje standardnih modernih programskih praksi.

Da bi pomogli studentima da lakše savladaju tu tranziciju sa Sveučilišta u poslovno okruženje razvoja softvera, AG04 organizira petotjednu edukaciju Spring Boot Summer School:

Spring je baš taj dio znanja koji sveučilišni programi za sada relativno nedovoljno prenose. Svaki polaznik će imati svog mentora, koji će ga voditi kroz cijeli proces. Od studenata koji prođu Summer School, dio će dobiti priliku i pridružiti se našem timu, ali svaki od njih će dobiti vrijedno i besplatno znanje za svoj budući rad. Ovakve koncepte ćemo samo širiti i uvoditi nove programe, jer prihvaćamo svoj dio odgovornosti za edukaciju i formiranje stava o tome što je “gotov Java developer”.

Prijave su otvorene do 5. srpnja,

Komentari

  1. Miro

    Miro

    2. 7. 2018. u 15:03 Odgovori

    Par primjedbi na tekst. Java ni po čemu nije bolja od drugih poznatih jezika. JVM je prednost ali i nedostatak jer zbog ‘prevođenja’ na platforme usporava kod u usporedbi sa npr C ili C++. Osim toga danas postoje kompajleri i za druge jezike. Java je samo jedan od segmenata prog. industrije koji se odabire prema specifičnim potrebama.

    Druga primjedba je da su gotovo svi jezici isti i koriste ista pravila i slične prakse, razlikuje ih samo sintaksa. Dakle nema ‘boljeg’ ili ‘lošijeg’ jezika. To se i vidi na Indeed jer svi poznatiji jezici imaju relativno sličnu potražnju.

    Treće i zanimljivo, spomenuta firma je prošle godine prema javnim podacima imala 44.000 EUR troškova mjesečno. Ako 55 zaposlenih podijelimo sa 44.000 EUR ispada da bi čak i uz nula ostalih troškova mjesečni ‘trošak’ plaće zaposlenika bio 800 EUR i to bruto. WTF?

    • Roko Roić

      Roko Roić

      2. 7. 2018. u 15:58 Odgovori

      I da, znam da ću izazvati flame war (mišljenja su moja privatna, da se odmah ogradim)… ali i te kako ima boljih i lošijih jezika. Razlike među jezicima su drastične. Nipošto ne kažem da je Java najbolji jezik, da ne počinjem taj flame war… ali jezici se dramatično razlikuju u kvaliteti. I još nešto, Indeed.com kaže da za Javu trenutno 68K poslova, PHP 14K poslova. Možda krivo gledam, ali išao sam provjeriti ovo gdje kažeš da svi poznatiji jezici imaju relativno sličnu potražnju? Živ bio i nemoj šta zamjeriti.

  2. Roko Roić

    Roko Roić

    2. 7. 2018. u 15:54 Odgovori

    Miro pozdrav. Na temu jezika, možemo stvarno dugo tipkati i forma komentara ispod članka je možda nezahvalna. Od kompajliranih jezika, GoLang ima dosta kvalitetan ekosustav i nije slučajno Docker napisan u njemu. Nekompajlirani jezici često imaju JIT, pa tako taj pristup koristi i JVM (isto tako i CLR od .Net-a, Android runtime, Node runtime). Baci oko na JIT koncept. A što se tiče spomenute firme, ona raste 150% godišnje pa brojevi nisu takvi kako ti gledaš. Najbolje da pitaš nekog iz firme jesu li zadovoljni, imaš ih puno na linkedinu. ;)

  3. Miro

    Miro

    2. 7. 2018. u 23:40 Odgovori

    Pogrešno tumačiš podatke, ako pogledaš statistiku vidjet ćeš da PHP-u najviše raste zastupljenost tj udio na tržištu, dok većina pada a zadnjih godina najrazvikaniji tavore na malim postocima (inače i sam radim u tim ‘razvikanima’). Dakle PR i marketing je jedno a stvarnost drugo, najpopularniji nisu i najtraženiji. PHP je i dalje među najzastupljenijima, ali su PHP programeri već zaposleni u velikim količinama pa ih ne treba puno, dok drugima raste popularnost i zato ih traže naoko više. Ja znam hrpu jezika pa me i dalje najviše gađaju PHP poslovi koje volim izbjeći.

    Što se tiče dramatične razlike u jezicima tu se ne slažem. Velika većina počiva na C/C++ korijenima i principima, dugi dio su jezici kao Python koji su preslobodni u sintaksi, osobno ih ne volim. I treći kao javascript koji koriste functional programming. Sve je to isti shit kada malo bolje naučiš. Razlika je samo koliko si kreativan u rješavanju zadanih problema. Dobar dan na svim jezicima znači isto

    Što se tiče firme, ovo su javno dostupni podaci pa sam zbrojio dva i dva. Za neto mjesečne troškove 44000 EUR možeš platiti max 20 programera. Dakle nešto je pogrešno izjavljeno ili je firma narasla od nove godine sa 15 na 55 ljudi.

  4. Miro

    Miro

    2. 7. 2018. u 23:57 Odgovori

    Evo malo realnosti, PHP drži još uvijek ogroman udjel server jezika i ne posustaje, iako bi se prema naslovima iz novina zaključilo da su mnogi daleko popularniji. Netko to očito treba razvijati i održavati. Razvikani jezici imaju konstantno zanemarive tržišne udjele, tako da početnik u programiranju može biti naveden na pogrešne odluke. Nije sve istina što se reklamira.

    https://bit.ly/2kdb4te

    Osobno preferiram C/C++ i javascript, ni Java nije loša ali spomenuti PHP poštujem jer naprosto radi sve što treba za većinu web poslova. Ja klijentima nudim sve super mogućnosti javascripta/Node MongoDB/Socket da bi na kraju odabrali plain old PHP.

    Kako sve više idemo u IoT i no-pc sveopću povezanost, mislim da će javascript opako pomrsiti račune javi jer iako zasad nije toliko portabilan može sve što i java i još puno više (asinhroni functional programming sa sistemskim C++ libuv znači vrlo blizu procesoru itd). Node je kombinacija Google V8, js i C/C++ i ta se kombinacija može ugraditi svugdje kao i java sa JIT-om. Pitanje je samo vremena

  5. Ante

    Ante

    6. 7. 2018. u 10:51 Odgovori

    Što se tiče PHP-a, stvar je ovakva. Neki ljudi gledaju udio PHP baziranih siteova i web aplikacija pa po tome zaključuju koliko je jezik popularan. To je krivo gledanje.

    PHP je u stara vremena bio prvi suvisli jezik za web programiranje. Tada je napravljeno puno gotovih programa koji su se kasnije usavršavali. Jedan od njih je svakako WordPress koji je baziran na PHP-u, ima najvei broj tema i pluginova i zato ga skoro svi koriste u slučaju kad je potreban CMS. Tu je i phpBB i vBuletin koje koriste gotovo svi forumi, a ima i još programa koji su napravljeni odavno pa se po inerciji koriste.

    Većina tih siteova koji su bazirani na PHP-u se ne reprogramiraju, nego ekipa instalira WordPress i onda ga customiziraju, dodaju pluginove i mijenjaju teme.

    Znači ako mjerimo popularnost jezika po tome koliko siteova se “vrti” na tom jeziku, onda to može dati itekako krivu sliku. Popularnost treba gledati po tome u kojem jeziku se najviše traži programera koji će raditi custom aplikacije. Po tome se može odrediti koji jezik je najisplativiji za zapošljavanje.

  6. Miro

    Miro

    8. 7. 2018. u 22:32 Odgovori

    Ante oprosti ali znaš li ti čitati grafikone. A onom grafu gore iz linka ‘Historical trends in the usage of server-side programming languages for websites’ vidi se da php drži ogroman udio i da je taj udio povećava više od drugih. Koji dio je nejasan.

    Pa da ponovim, znam hrpu novih tehnologija, radim za van i najčešće narudžba završi sa PHP bazom. Što me osobno pomalo frustrira ali jbg, valja biti realan

  7. Ante

    Ante

    10. 7. 2018. u 09:03 Odgovori

    Miro, mislim da bi bilo besmisleno da uopće idem išta komentirati nakon svega što sam onako detaljno i iscrpno napisao. Pročitaj malo bolje moj post pa navedi što ti nije jasno.

  8. Stjepan

    Stjepan

    10. 7. 2018. u 12:49 Odgovori

    Python je u jednom pitanju naveden kao noviji jezik, ali on to nije. Python postoji od 1991., a prva javna implementacija Jave se pojavila 1996. Odabir jezika često znači i da developeri biraju tip projekta na kojima će raditi. Java obično znači veće projekte i veće timove (enterprise rješenja, mobilni razvoj je nešto drugačiji – ali tu već Kotlin i neka hibridna rješenja zauzimaju više mjesta), dok Python developeri rade na projektima u manjim timovima (ali ne nužno i samo na malim projektima), i obično više utječu na razvoj kranjeg projekta, tj. njihov doprinos je uočljiviji. Na kraju krajeva za iste poslove u Pythonu treba manje linija koda. A glede “bogatstva biblioteka” tu Python developeri imaju razloga za zadovoljstvo, možda čak i više nego na drugih platformama. Javaši se neće složiti, ali meni se čini da bi školama i fakultetima bilo bolje da osnovno učenje temelje na Pythonu, a ne na Javi jer bi učenici i studenti brže došli do rješenja, bili bi motiviraniji i usredotočili bi se na važnije stvari (algoritmi i načini rješavanja problema), a ne bi trošli toliko vremena na upoznavanje sa samom platformom.

  9. Ante

    Ante

    11. 7. 2018. u 10:07 Odgovori

    Stjepan, slažem se da odabir jezika određuje na kakvim ćeš projektima raditi. Ako odabereš .NET onda ćeš prije završiti u nekoj korporaciji, a s PHP-om imaš puno veće šanse raditi u startupu. Sve ovisi tko preferira koji tip rada.

    Što se tiče jezika koji nisu strongly typed, to se u početku čini dobro, malo manje zawebancije, ali kad projekt naraste onda zna dolaziti do logičkih i/ili grešaka u izvođenju, tj. grešaka koje na razini kompajliranja ne vidiš. Zato ja više volim strongly typed jezike. U početku je nešto više posla (ali ne i previše jer se navikneš), ali kad projekt dobije pozamašne gabarite, onda mirnije spavaš i ne budiš se po noći od misli što će neočekivano otići u prdec :)

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Digitalni mediji

Je li ‘native’ prikriveno oglašavanje? Riješimo tu dilemu jednom zauvijek.

Ovo je iz nekog razloga najčešća tema panela na marketinškim događanjima, koja se ponavlja iz godine u godinu, kao da nitko nikada nije pročitao ni jedan tekst na temu nativea, vidio native kampanju u praksi ili pratio što se događa u medijskoj i oglašivačkoj industriji u zadnjih deset godina.

Startupi i poslovanje

Gideon Brothers Matije Kopića u konkurenciji 150 tvrtki odnio titulu europske AI zvijezde u usponu

Gideon Brothers Matije Kopića vlasnik je prestižne nagrade European AI Rising Star koju dodjeljuje Founders Forum, zajednica osnivača tech tvrtki investitora. Nagrada dolazi nakon pobjede u konkurenciji 150 tvrtki i startupa iz više od 30 zemalja.

Mobilno

Moj Vip: Nakon svih korisničkih testiranja, sprinteva i radionica, kako je ispala nova verzija aplikacije?

Vipnet je u svoju novu aplikaciju uložio popriličan trud. Radionice, design sprintevi, korisnička testiranja. Krajnji rezultat? Pa… aplikacija koja je funkcionalna i ne ide mi na živce.

Što ste propustili...

Startupi i poslovanje

Svjetsko natjecanje sveučilišnih startupa: Kvalificiraj se za nacionalno natjecanje u Rijeci!

University Startup World Cup vodeći je sveučilišni startup program i svjetsko studentsko startup natjecanje, a vi također možete biti dio toga. Imate ideju, koncept? Sve što je dovoljno za prijavu je par dokumenata i student u timu. Još se stignete kvalificirati za nacionalno natjecanje u Rijeci.

Internet marketing

Marketingaši, koliko vam je pametno (ne)sudjelovati u nogometnoj euforiji?

Koja je najvažnija sporedna stvar na svijetu? Nogomet! Koliko brendova su službeni partneri FIFA-e na Svjetskom prvenstvu? Samo njih šest. Koliko država se natječe? 32. Mislite li da nema mjesta za vas u ovoj utakmici, grdno se varate.

Najava

U Vip Adria League dodani Clash Royale i Hearthstone. Iznenađeni?

Vip Adria League od jučer je duplo veća. U ligi se od jučer nalaze četiri igre, a osim poznatih League of Legends i Counter Strike: GO, igrači iz regije će se moći natjecati i u Clash Royale i Hearthstoneu.

Kultura 2.0

Od ‘hejtera’ do digitalaca; Kako vi pratite Svjetsko prvenstvo u Rusiji?

Od ekipe koja smišlja pakovanja kupusa, pa do ugostitelja; svi trljaju ruke u vrijeme Svjetskog prvenstva u nogometu. Ipak, nismo svi isti, a bome nas i ne zanima sve nogomet.

Startupi i poslovanje

Treće izdanje ChangeCona dolazi u Zagreb krajem listopada

Bliži nam se treće izdanje ChangeCona, konferencije koja okuplja IT stručnjake iz područja enterprise softvera u Zagrebu, a nakon dva uspješna izdanja ove godine će se ponajviše govoriti o procesima automatizacije kod enterprise rješenja.

Najava

Zašto nije dovoljno imati samo lijep webshop saznajte na Tinel Meetupu

Internetske trgovine više ne trebaju biti samo lijepe. Bez dobrog korisničkog iskustva ne možete očekivati ni konverzije, ali ni dobru zaradu. Upravo o tim stvarima priča se na 14. po redu Tinel Meetupu ovog četvrtka u Locasticu.