Koji programski jezik učiti

Pitanje iz naslova jedno je od najčešće postavljenih pitanja svršenih diplomaca ili ljudi koji ulaze u svet programiranja. Pitanje nije trivijalno iz jednostavog razloga što dobro odabrana tehnologija znači veće mogućnosti za pronalaženje posla, bolje plaćen posao, … u najkraćem – svetliju budućnost.

Sve do juče na pitanje iz naslova bez mnogo razmišljanja odgovarao bih – PHP. Jednostavno, PHP poslova uvek ima, PHP se relativno brzo nauči, tako da za relativno kratko vreme možete doći do posla. Čak i za one bez ikakvog iskustva, otvorenost Web platforme omogućava početnicima da naprave sopstveni sajt, sajt komšijine prodavnice, prijatelja … whatever … i tako za kratko vreme steknu kakve takve reference i iskustvo – stvar koju tako mnogo tražimo mi koji tragamo za kvalitetnim developerima.

Elem, pre nekoliko dana kolega iz FBM-a zamolio me je da otvorim novu poziciju za iPhone developere, nakon čega sam nažalost jako brzo saznao da se broj iPhone Developera u Srbiji može nabrojati “na prste” jedne ruke.

Međutim situacija u svetu a naročito u USA je dramatično drugačija. Broj downloada iPhone aplikacija na Apple Application Store-u bliži se cifri sa 9 nula, a trenutno na listi najprodavanijih knjiga na Amazonu u kategoriji Računari i Internet možete naći samo nekoliko programerskih knjiga, od kojih su apsolutno sve vezane za iPhone. Ista priča je i kada odete i na kategoriju Programming gde su tri od prvih pet naslova knjige o razvoju iPhone aplikacija!

iPhone Development Books
iPhone Application Develpment Books

Nažalost cene Apple računara i nedostatak zvanične iPhone podrške u Srbiji i dalje je veliki problem u ovoj priči. No, za one za koje taj problem nije nepremostiv, današnji odgovor na pitanje iz naslova definitivno bi bio Objective C. Nisam siguran da ću čak i ja odoleti iskušenju …

18 thoughts to “Koji programski jezik učiti”

  1. Ja sam hteo malo da se igram sa iPhone programiranjem pa sam otkrio da mi treba Mac za razvoj 🙁 što je malo odložilo sve.

    No, iako iPhone development trenutno zvuči zanimljivo, može biti i samo još jedan trend koji će doći i proći. Gledajući veličinu tržišta, Symbian ili recimo Blackberry imaju znatno više korisnika, jedino što se iPhone app trenutno mnogo bolje monetizuju zahvaljujući Applu.

    Uglavnom, ja bih svakog savetovao da dobro nauči same principe programiranje, OOP, univerzalne standarde kao što su XML i sl. i posle će mu za svaki programski jezik biti neophodno nedelju dana da uđe u štos. 🙂

  2. Sve je to OK ako imaš kao poslodavca firmu koja već ima proizvod za iPhone (ili ako si ti takav poslodavac). Ali, ako radiš aplikaciju i onda ovisiš o hirovitosti Apple-a, odnosno o njihovoj odluci hoće li tvoja aplikacija proći njihov filter i dospjeti u AppStore, a znaš da ionako postoji cijela gomila drugih mobilnih platformi koje sigurno imaju budućnost… Onda bolje nešto drugo.

    A što se tiče jezika, moj izbor je: java, ruby, .net, python, php (tim redom)

  3. apple fanboys su dosadni koliko i zbunjeni.

    zasto bi IKO hteo da radi smorene iPhone aplikacije, kada ima drugih web poslova koji su daleko laksi, placeniji, i sigurniji?

    podrzavam tvoj predlog za ucenje PHPa dinke, ali ne podrzavam apple-is-the-greatest pricu 😛

    cheers,
    d.

  4. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

    “Java is the most popular programming language. C and C++ are still at the ranks two and three – what is remarkable.”

    Kad su u pitanju mobilne platforme, zlatno doba IPhone aplikacija je proslo, sad ima toliko aplikacija da je trziste prezasiceno, a developeri bi rekli i uguseno – zbog kojekakvih “prdez aplikacija” od $0.99

    S druge strane, platforme:

    1) BlackBerry (Java)
    2) Nokia/Symbian (Java/C/C++)
    3) SE/Samsung/LG/Moto (Java)
    4) Windows Mobile (.NET)

    …cine vecinu trzista. Tu je jos i Android (Java)

    Svaka od njih ima svoj App Store gde su uslovi jednostavniji, pritom nema insistiranja na Apple alatima. Appleu svaka cast na kreiranju trenda i potvrdi da mobile web nece jos skoro potisnuti native aplikacije.

    Moj odgovor na pitanje “sta uciti” bio bi Java/C#, cime se pokriva najveci skup korisnika… ne samo u mobile platform areni…

  5. Po mom skromnom mišljenju, studenti bi pri izboru programskih jezika trebali da biraju one koji mu iz korena menjaju pogled na programiranje.

    Idealno bi bilo da jezike uče sledećim redosledom: ASM, C, VHDL (po želji), Java/.NET, Python/Ruby, JavaScript, Lisp

  6. Kad smo vec kod ovoga, ja nista ruznije nisam video od Objective-C… ali bez zezanja, zelja za ucenjem Objective-C ce vas brzo proci:)

  7. @dule
    Bas me interesuje sta me to svrstava u apple fan boya i gde si u mom tekstu uopste video “apple is the greatest” pricu 🙂 ?

    @Duca
    Pogledao sam letimicno. Malo je drugacija sintaksa od Jave recimo, ali u odnosu na Ruby (koji sam isto tako ovlas pogledao) pravi je lepotan 😉

    Mada … daleko od toga da treba na osnovu sintakse procenjivati bilo koji jezik.

  8. Najpre da se složim sa generalnim mišljenjem da je sad kasno za ulaganje u iPhone tehnologiju, tržište je zasićeno. Sa druge strane, Objective-C je zanimljiv jezik; Smalltalk stil OOP-a nakalemljen na C. Zlobnici kažu da je Objective-C pokupio ružne karakteristike oba jezika (C sintaksa i SmallTalk “messages”) ali se ne slažem baš sasvim sa time.

    Što se saveta za učenje jezika tiče, sa tačke gledišta isplativosti mislim da je najbolje naučiti ili Javu ili C# (manje više svejedno koji od ta dva). PHP poslova ima puno ali su daleko slabije plaćeni (bar u USA, ne znam za Srbiju). Ruby je relativno isplativ u poslednje vreme, a ako vas zanima sistemsko programiranje, grafika ili igrice još uvek nema zamene za C++. E da, i COBOL je jako dobro plaćen jer stari programeri izumiru a novih je malo.

  9. PHP posle Pythona, jer se bukvalno tada PHP savlada za par dana. Opet, ne treba zaboraviti i VB ‘alike’ pricu. U nasim firmama koje nisu net orijentisan i dalje je Access/SQL/VB zakon.

    Pretpostavljam da malo drugacije gledate na pricu vi koji se bavite Web-om iskljucivo. Grdan kes se uzima za desktop aplikacije tipa racunovodstvo/inzinjering/optimizacija…

    @Petar

    “ASM, C, VHDL (po želji), Java/.NET, Python/Ruby, JavaScript, Lisp”

    Dok student ovo nauci i nadje posao u Sorabiji, neki klinac koji pocne da guli PHP/SQL ce i bez fakulteta uzeti kesa koliko hoce…

    ‘Nije majstor ko zna da napravi, nego naplati’ 🙂
    Da li je OO, ili nije..klijenta tesko da je briga…

    Bitno je da radi sta se trazi.

  10. Pa ako svrseni diplomac razmislja sta ce uciti posle faksa, onda…

    Sta je radio na faksu? Prolog ? Kome to u Srbiji treba?

    Neka uce Python>MySQL>PHP. VB + Access/SQL sigurno nije naivna prica za firme po Srbiji.

    Otpremnice..fakture…optimizacija…proracuni…

    Bitnije od jezika im je da udju u neku pricu odmah. Lako ce se prebaciti kad zatreba.

    I onako verovatno nece raditi samo programiranje po firmama 🙂

  11. formalno govoreci Objective-C je nadskup od c, ili sto bi rekli u skoli: “Svaki c program je i Objective-C program. Obrnuto ne vazi.” E sada je problem sto je na takav c dodat objektni model, koji je poptuno neprirodan za vecinu nas. Ne postoje metode koje se pozivaju, vec objekti slusaju i primaju poruke. Sa jedne strane ovo ima neke prednosti ali sa druge je ovakva sintaksa sa uglastim zagradama potpuno neintuitivna. No kako neko rece mozda je to samo stvar ukusa…:)

  12. Sto narod kaze, “na sve se covek navikne”. Valjda bi se tako covek navikao i na Objective-C 🙂

    Inace, fascinantno mi je kako Apple nikako da se otarasi Objective-C jezika. Secam se da sam pre par godina citao prepisku jednog od bitnijih inzenjera u Apple i Steve Jobs-a, gde ga inzenjer moli da batale Objective-C i usvoje neki interpretirani jezik na sistemskom nivou, ali od toga ocigledno nista nije bilo.

    Kada sam cuo da ce native aplikacije za iPhone da se rade u Objective-C, prosto nisam mogao da verujem. Nije ni cudo sto se prodaje toliko knjiga za iPhone development, kad vrlo malo ljudi zna Objective-C plus Apple-ov OS. I jos uvek treba da naidjem na blog post ili clanak koji sumira utiske o iPhone development a da krajnji utisak nije “zachepi nos, radi i gledaj da se sto manje nerviras” 🙂

    Sto se mojih preporuka tice, jezici koje za pocetak treba nauciti su:

    1. C
    2. Java/C#
    3. Neki funkcionalni jezik, verovatno neki dijalekt Lisp-a
    4. Python umesto PHP ili Ruby

  13. >> Srecno svima sa pronalazenjem posla sa Pythonom :))

    Ja bih na Python pre gledao kao na ulaganje u buducnost, iako mislim da vec sada ima dosta poslova za koje se trazi znanje Python-a. Mislim da ce Python (uz Ruby, ako poprave Ruby VM) zameniti PHP u trzhishnom segmentu web aplikacija kojim PHP trenutno suvereno vlada, a da ce PHP zasluzheno dozhiveti istu sudbinu kao i Perl.

    Josh jedan plus za Python je shto je zaista sveprisutan, pochev od skriptovanja za *NIX admine, preko web aplikacija, mobilnih telefona pa do desktop aplikacija, itd.

  14. Hmm, ne znam koliko je IPhone development za pocetnike, znam neke ljude koji imaju 5+ godina iskustva u realnom programiranju na razlicitim jezicima pa grcaju i koprcaju koristeci Objective C.
    Mislim da izbor jezika za nekog ko pocinje i nije toliko bitan, pre bih nekoga ko je tek izasao sa faxa sto pre savetovao da pokusa da upadne u dobro organizovanu firmu, jezik i tehnologija su nebitni. Da tamo ostane barem godinu dana, nauci o ciklusu izrade jednog softvera, kako zahtevi klijenata funkcionisu u realnosti, savlada procenu vremena za taskove i sta to znaci raditi u timu.

    Marko

    Pozdrav

Leave a Reply

Your email address will not be published. Required fields are marked *