Ako vam je jedna od novogodišnjih odluka da 2019. godine naučite programirati, nadamo se da će vam ovaj tekst pomoći u odabiru jezika, odnosno tehnologije. I da budemo odmah jasni – ne postoji najbolji jezik za naučiti! Postoje jezici koji su bolji od drugih za određene stvari, ali su onda lošiji u nekim drugim segmentima. Svi programski jezici i tehnologije imaju svoje prednosti i mane. Ako pitate 10 programera koji jezik za naučiti, vjerojatno ćete dobiti 10 različitih odgovora. To je zato što ljudi najčešće preporučuju ono što su oni naučili i ono što je po njihovom iskustvu dobro. No, ono u što smo 100 posto sigurni je da ako naučite programirati – bez obzira na jezik – život će vam biti bolji. Osim što ćete imati jako naplativu vještinu, počet ćete razmišljati na drugačiji način i otkriti ćete jedan novi svijet.
Ovaj tekst je informativne naravi, a vjerujemo da mnogi naši čitatelji razmatraju karijeru “softverskog inženjera” pa se nadamo da ćete dobiti neke informacije koje će vam pomoći da krenete u tom smjeru. Većina programera je na početku karijere razmišljala o toj karijeri iz nekoliko razloga: ima jako puno posla za programere, dobro su plaćeni, mogu lako dobiti posao bilo gdje na svijetu (op.a. ali i u Hrvatskoj možete odlično živjeti od programiranja!), kako je ovaj posao zanimljiv i izazovan. Većina toga su validni razlozi jer to stvarno jest tako. Zato, krenimo redom i pogledajmo neke popularne tehnologije s kojima ne možete pogriješiti.
JavaScriptJavaScript (JS) je definitivno najpopularniji jezik na tržištu. To pokazuju sve ankete, samo što postotak popularnosti varira. Uz to je, bez ikakve sumnje, najdominantniji jezik za razvoj web stranica. Uz HTML i CSS, JS je treći stup weba. Samo pogledajte sve te uređaje oko sebe koji imaju pristup Internetu i pregledavanju sadržaja. A kao što je rekao Jeff Atwood, suosnivač popularnog Stack overflowa: “Sve aplikacije koje se mogu napisati u JavaScriptu, će se i napisati u JavaScriptu”.
Zato i ne čudi da i dan danas sve više programera kreće učenje s ovim jezikom, no s vremenom samo nadograđuju znanje s novim frameworcima, a ne idu dalje učiti nove jezike. Pogledajte samo malo oglase za posao – svuda se traže Angular, React i Vue developeri. Angular, React i Vue su JS frameworci. Definitivno će potražnja za ovim programerima i dalje rasti u budućnosti. Da ne govorimo da osim frontenda (op.a. Ono što vidite na web stranicama), u JS-u možete pisati i backend (NodeJS je odličan primjer za to). Ako vas zanima web, počnite sa spomenutim HTML-om, CSS-om i JS-om. Dalje će nove stvari dolaziti jedna po jedna, a posla će uvijek biti. Kao i ogromne potražnje.
Swift
Swift je relativno nov programski jezik kojeg je Apple napravio 2014. godine. On primarno služi za razvoj iPhone (iOS) i macOS aplikacija. Prije nego je Swift došao, koristio se Objective-C jezik kojem nedostaju neke mogućnosti modernih jezika, a Swift je to riješio. Osim novih mogućnosti, Swiftova sintaksa je “pitka” (za razliku od Obj-C-a), brži je i slično.
Mnogi programeri vole ovaj jezik, što je vidljivo po anketama iz 2017. i 2018. godine jer je Swift bio četvrti omiljeni jezik na brojnim ljestvicama popularnosti. Čak je neko vrijeme bio i prvi po popularnosti i rastu kada se pojavio. Ako vas zanima razvoj mobilnih aplikacija, posebice iOS aplikacija, Swift je put kojim biste trebali krenuti. Posla ima koliko želite, problem je trošak “ulaska”. Da biste mogli programirati u Swiftu, treba vam Xcode IDE. No, njega nemate na Windowsima i Linuxu, što znači da vam treba Mac računalo, a ona nisu jeftina. Također, bilo bi dobro da imate i iPhone na kojem ćete testirati aplikacije, iako ih možete testirati i u simulatoru od Xcodea.
PythonPython spada u “general purpose” jezike koji možete naći praktički bilo gdje. On se koristi za razvoj web aplikacija, desktop aplikacija, upravljanje mrežnim serverima, za machine learning … Koriste ga čak i veliki igrači poput Googlea i NASA-e. Osoba koja je izumila Python – Guido van Rossum – je čak bio zaposlenik Googlea i tamo je pisao Python. Vjerovali ili ne.
Kod napisan u Pythonu je izuzetno čitljiv, dobro strukturiran i s njim možete napraviti što god poželite. Ako se ne slijede smjernice kako pisati kod, može biti “ružan”, ali to je manja zamjerka koju imamo.
Nadalje, web frameworci bazirani na Pythonu – Django i Flask – postaju sve popularniji. Čak je i Dropbox napisan u Djangu što pokazuje da je dovoljno dobar za globalne web stranice koje koriste milijuni ljudi na dnevnoj bazi. U Hrvatskoj je jako popularan kod ljudi koji se bave “data scienceom” i machine learningom, no koriste se za sve. Također, posla ima dovoljno za sve Python developere, a odličan je izbor za ljude bez iskustva jer ga je lako naučiti.
JavaTeško je reći da li je popularnija Java ili JavaScript, no definitivno su oba jezika pri samom vrhu. Spomenimo samo podatak da 90 posto kompanija koje spadaju u “Fortune 500” koriste Javu za sve servise, web stranice i slično. Java je super jer ju možete pokrenuti svuda gdje se vrti JVM (Java Virtual Machine). Od tuda i onaj poznati slogan Jave – “Write once, run anywhere”. Upravo u tome i leži vrijednost Jave jer je jako kompatibilna, cross-platform je i s njom možete napraviti što god želite. Bit će i onih koji će reći da JVM nije dobra stvar, no mi imamo pozitivna iskustva s Javom.
Java je popularna među mnogim mladim programerima jer s njom možete pisati backend servise (od REST API-ja pa nadalje), koristiti ju za big datu, embedded sustave, ali i Android aplikacije! Ako vas privlači mobilni development, ali vam je ulazak u svijet iOS-a preskup, uvijek možete krenuti s Javom i Android developmentom.
Java definitivno nije “friendly” jezik za početi programirati, ali kada prijeđete određenu granicu znanja, postaje jako podnošljiva i relativno laka za korištenje. A i možete biti sigurni da će potražnja za Javom rasti i narednih 10 godina. Da ne govorimo da ako otvorite oglase, svaki drugi se odnosi na Javu i pripadajuće tehnologije. Bili ti poslovi u Hrvatskoj, diljem Europe ili Americi. Generalno, mi bi Javu preporučili onima koji već imaju neke osnove programiranja, pa žele dalje proširiti svoje znanje.
Ako već imate znanje Jave ili općenito programiranja (op.a. barem 2-3 godine), onda svakako bacite oko na Kotlin ili Scalu.
C++C++ je jezik oko kojeg se često lome koplja jer je izumljen davne 1985. godine. Neki će reći da ga se ne isplati učiti u 2019. godini, dok će drugi reći da će za njim biti potražnja još dugi niz godina. Mi više naginjemo strani da ga se isplati naučiti jer je jako efektivan i fleksibilan jezik, koji nudi odlične performanse, stabilnost i može se koristiti za mnogo toga.
Mnogi veliki sustavi koji i danas rade su napisani u C++-u, uključujući kompanije Microsoft, Oracle, PayPal i Adobe.
Ako krenete ovim putem i pokušate karijeru “pogurati” uz pomoć ovog jezika, vjerojatno ćete pisati desktop aplikacije koje zahtijevaju velike performanse ili ćete raditi u gaming industriji. Da, radi se o kompleksnom i teškom jeziku, ali je i “povrat investicije” velik.
Zanimljivost, su-osnivač The Pirate Baya koji ima kompaniju u Švicarskoj, otvara ured u Hrvatskoj gdje traži C++ programere iz Hrvatske. Jeftiniji smo u odnosu na Švicarske kolege, ali jednako dobri u programiranju, ako ne i bolji. Generalno gledano.
Ruby (on Rails)Ruby je danas izuzetno popularan jezik kojeg vole mnogi programeri diljem svijeta. Dizajniran je tako da bude izuzetno lagan za korištenje, posebice novim programerima.
Ruby je high-level programski jezik kojem je cilj da u što manje linija koda napravite što više. U prijevodu to znači da jezik “ispod haube” mnogo toga radi za vas što može rezultirati slabijim performansama. Ovisi kako na to gledate – s jedne strane jezik je “sporiji” od nekih konkurenata, ali s druge strane programeri mogu biti jako produktivni s njime.
Dobro strukturiran Ruby kod kada čitate, kao da čitate rečenice napisane na engleskom jeziku. Zato je odličan izbor za prvi jezik i ulazak u svijet programiranja. Brzo ćete ga naučiti, brzo ćete moći s njim raditi, a usput ćete se “zaljubiti” u njegovu pitku sintaksu.
Osim Rubyja, moramo spomenuti i Ruby on Rails web framework koji je izuzetno moćan alat za izradu web stranica. Zato mnogi startupi kada kreću u razvoj nekog proizvoda kreću s ovime. Ruby koriste za backend (API), a Ruby on Rails za web stranicu koja će komunicirati s backendom.
ElixirElixir je još jedan novi jezik koji se na tržištu pojavio 2011. godine. Vrlo brzo je postao izuzetno popularan u programerskoj zajednici jer nudi neke specifične mogućnosti. Ono što treba napomenuti je da je Elixir “inspiriran” programskim jezikom Erlang koji je s nama od 80.-ih godina prošlog stoljeća. Samo za informaciju, Erlang je stvorio Ericsson za svoje potrebe, a i dan danas je standard za sustave koji trebaju veliku konkurentnost.
Elixirov kreator – Jose Valim – je za sebe rekao da je veliki ljubitelj Erlanga, ali je vidio prostor za napredak pa je zato napravio Elixir.
Elixir se danas većinom koristi za web development, no nema puno kompanija koje ga koriste na svijetu. Poslovi su dobro plaćeni, ali su limitirani. U Hrvatskoj jako malo kompanija koristi Erlang, a ako ga i koristi, onda da koriste za razvoj internih alata ili web stranica. Vjerujemo da će potražnja u budućnosti rasti za Elixir programerima, no trenutačna situacija nije bajna. Bez obzira na to, radi se o odličnom programskom jeziku koji nudi veliku skalabilnost sustava.
ScalaZa kraj još ostaje Scala, koju smo u ovom tekstu već spomenuli u kontekstu Jave. Scala je skraćenica od “Scalable Language” i ona je jedan od pokušaja da se prepiše Java samo na bolji način. Točnije, da se nad Javom napiše jezik koji će nuditi bolju fleksibilnost, sigurnost, te da u manje linija koda napišete više toga. Da nemate “overhead” koji Java ima. I Scala je uspjela u tom naumu. Ona se i dalje vrti u JVM-u, ali je mješavina objektno-orijentiranog i funkcionalnog jezika.
Scalu koriste velike kompanije poput LinkedIna, Twittera, Guardiana, mnoge Švicarske banke … Scala ima reputaciju kompleksnog jezika i zato smo rekli da vam treba par godina iskustva prije nego ju krenete učiti. Tzv. “learning curve” je velik, ali kada uspijete prijeći određenu granicu, korištenje Scale postaje jako zabavno. A onda vam se otvaraju i mnoga vrata koja se inače ne bi otvorila. Posla ima, Scala je izuzetno plaćena, ali očekujemo da će joj popularnost još više narasti u narednim godinama kada programeri shvate benefite funkcionalnog programiranja.
Piše: B.P.