Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web development, networking and server security. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Kako da odaberete koji programski jezik da učite





Ponedeljak, 21. februar 2011.

Da li želite da naučite neki novi programski jezik osim Jave? Naš JCG partner Brian Du Preez iz Zen in the art of IT (Zen u umetnosti IT-ja) omogućava relativno dugačku analizu faktora koje bi trebalo da uzmete u obzir kada se suočavate sa pitanjem "šta se nalazi iza Jave"!

Hajde da pogledamo šta on ima da kaže:

(NAPOMENA: Originalni tekst je bilo neznatno izmenjen da bi bio lakši za čitanje)

Mnogo sam želeo da naučim novi jezik, ali budući da sam zaluđenik za Javu, uvek završim ubeđujći se da treba da potrošim vreme i trud na otkrivanje, istraživanje ili poigravanje sa nečim iz Java open source kolekcije, Spring-om, Hadoop-om, Joda Time-om, Hibernate-om, Maven-om, Hazelcast-om, EhCache-om itd. itd. Za stvaranje pomoću Jave danas je jako bitno da poznajete i povezujete okvire za rad, što je i loša i dobra stvar (ali i tema za neki drugi put).

Da bih odvratio sebe od preusmeravanja energije "novog jezika" u J.J.O (još jedan okvir), odlučio sam da dobro pogledam jezike i da vidim koji od njih bi mi najviše odgovarao i koji bi mi najviše koristio u poslu i u "IT Zen-u" i koji bi imao najveću prođu.

Dakle, šta je potrebno da jezik ima:
  1. IDE (integrisano razvojno okruženje)...prva stvar je IDE, ako ne postoji pristojno IDE za jezik, onda nije vredan ni truda ni vremena. Ne mislim za sebe da sam "naučnik" koji oseća potrebu da sebi nanese bol i neprijatnost kako bi bio "čist". Želim udobno i produktivno radno okruženje, VI ili Notepad sa korisnom komandnom linijom nije pravo rešenje.
  2. Ustaljenost.... svakih nekoliko godina, neko negde pokušava da definiše neki novi jezik, a mnogi od tih jezika umru zaboravljeni, kao na primer Brainf*** ili bilo šta što je izlistano na Esolang.
  3. Popularnost/Da je tražen.... kao i sa mnogim drugim stvarima i ovde je popularnost dobra stvar, jer to znači: open source zajednicu, podršku i što je najvažnije posao. Ako ikad poželite da vidite koji su jezici trenutno popularni pogledajte Tiobe sajt.
Pa ko su kandidati? Prema Tiobe registru iz februara 2011:

Java je još uvek najpopularniji jezik, ima odlična integrisana razvojna okruženja i postoji već 15 godina (23. januar 1996), ali srećom o Javi znam dosta toga ....pa da krenemo dalje....Da bismo brzo suzili spisak nećemo praviti pregled jezika koji gube na popularnosti iz očiglednih razloga, prelazimo na top 20 Tiobe spiska koji isključuje: C, C++, PHP, VB, JS, Perl, Ruby, Delphi, Go. (C, C++, PHP, VB, JS, Perl, Ruby, Delphi, Go)

Što nam ostavlja:
Python, C#, Objective-C, Lisp, NXT-G, Ada, Pascal, Lua, RPG

Pri tom postoji granica između ustaljenih jezika i onih koji su stari, a ja ću da kažem da su Pascal i RPG jednostavno stari, što može da uvredi neke ljude. (Pascal, RPG)

O Adi ne znam puno, ali nakon što sam pročitao pregled Ada jezika čini mi se da je OK, ali ću ga na osnovu popularnosti isključiti. (Ada)

Lua, kako se može videti na osnovu kratkog pregleda, to je jezik za skriptovanje. (Lua)

NXT-G ima veze sa lego kockama ili nekakvom robotikom, nije popularan. (NXT-G)

Lisp je kao Ada, na prvi pogled deluje lepo, samo što nije popularan. (Lisp)

A postoje i oni novi, funkcionalni jezici, "napravljeni na drugim platformama": Scala, F#, Clojure. Iako je korišćenje sasvim nove tehnologije veoma primamljivo, nije sve tako profitabilno niti je još uvek korisno za šire tržište. Trebalo bi im dati vremena da se standardizuju, skrase, a onda ćemo videti da li mogu biti široko prihvaćeni. Oni se sviđaju geeku u meni, te ću ih uvek motriti.

Sada mi preostaje:
Python, C#, Objective-C, (i Java).

Na osnovu gore navedene liste možemo označiti: IDE, Ustaljene i popularne/koji su traženi. Znamo da oni imaju pristojno integrisano razvojno okruženje: Eclipse, XCode, Visual Studio, (IntelliJ i Netbeans). Oni su takođe u upotrebi i dobro su poznati.

Hajde da pogledamo broj poslova: Naišao sam na sajt (Simply hired (Jednostavno primljeni na posao)) sa grafikonom koji prikazuje procenat poslova sa vašim zahtevima za pretragu bilo gde u listingu poslova. Od juna 2009. desilo se sledeće:

Python poslovi su se povećali 72%
C# poslovi su se povećali 77%
Objective-c poslovi su se povećali 268%
Java poslovi su se povećali 76%



Python, C#, Objective-c, Java trendovi Python poslovi |C# poslovi | Objective-c poslovi | Java poslovi

Sa skorašnjim navalom iPad-ova i iPhone-ova, procenat Objective-C ne treba da nas čudi. Ja imam problem sa Apple, Objective-C i XCode i taj problem jeste što Vam je potreban Mac da biste ga pokrenuli. Jednom kad krenete, shvatićete da morate da promenite sve u Apple, a ja za to nisam spreman. Za sada ću bataliti Objective-C. Pa ipak, ako ikad kupim Apple i propratne stvarčice, ovaj program će se vratiti na listu.

Sada mi preostaje Python i C# i pregled njihovih plata u poređenju sa Javom: (Podaci od Payscale).

SAD podaci

Java
PayScale - Plate prema sposobnosti korišćenja Jave, prosčne plate prema godinama iskustva


Srednja plata prema godinama iskustva - Veština: Java (Sjedinjene Države)

ALATI U KARIJERI: Digitron za platu, Alat za praćenje karijere, Trošak živog digitrona, Upoznavanje škrtice

Python

PayScale - Plate prema sposobnosti korišćenja Pythona, prosčne plate prema godinama iskustva

Srednja plata prema godinama iskustva - Veština: Python (Sjedinjene Države)

ALATI U KARIJERI: Digitron za platu, Alat za praćenje karijere, Trošak živog digitrona, Upoznavanje škrtice

C#

PayScale - Plate prema sposobnosti korišćenja C#, prosčne plate prema godinama iskustva

Srednja plata prema godinama iskustva - Veština: C# (Sjedinjene Države)

ALATI U KARIJERI: Digitron za platu, Alat za praćenje karijere, Trošak živog digitrona, Upoznavanje škrtice

Južnoafrički podaci

Java
PayScale - Plate prema sposobnosti korišćenja Jave, prosčne plate prema godinama iskustva

Srednja plata prema godinama iskustva - Veština: Java (Južna Afrika)

ALATI U KARIJERI: Digitron za platu, Alat za praćenje karijere, Trošak živog digitrona, Upoznavanje škrtice

Python

PayScale - Plate prema sposobnosti korišćenja Pythona, prosčne plate prema godinama iskustva

Srednja plata prema godinama iskustva - Veština: Python (Južna Afrika)


ALATI U KARIJERI: Digitron za platu, Alat za praćenje karijere, Trošak živog digitrona, Upoznavanje škrtice

C#

PayScale - Plate prema sposobnosti korišćenja C#, prosčne plate prema godinama iskustva

Srednja plata prema godinama iskustva - Veština: C# (Južna Afrika)

ALATI U KARIJERI: Digitron za platu, Alat za praćenje karijere, Trošak živog digitrona, Upoznavanje škrtice

Na osnovu podataka iz SAD, ja bih izabrao Python. On nije toliko popularan kao C#, ali plata je nešto bolje. Takođe bih koristio Eclipse (PyDev) i Spring, ali čim sam pogledao južnoafričke podatke, shvatio sam nešto, a to je da Python nije toliko veliki ovde. Ručno sam tražio za oglasima za Python pozicije i našao sam ukupno 2, a plate pri tom nisu bile dobre.

(Python)

Ovo ostavlja C# najboljim jezikom.

Ima Visual Studio (a čak i besplatnu verziju Visual Studio Express), a pored toga se i dokazao u poslednjih nekoliko godina, uvodi novine u Javu, postoji gomila poslova, ceo spektar sertifikata i plata su popunili prazninu u Javi. To mi se čini kao logičan izbor.

Na kraju, koristio sam C# mnogo godina unazad, te stoga nije potpuno nov. Većina uspešnih Java open source projekata (Spring, Hibernate itd itd) su prebačeni, tako da se to znanje može opet iskoristiti, što mi je pomoglo da donesem odluku. Sada samo treba da prestanem da radim 12-14 sati dnevno da bih mogao da se vratim svojim Microsoft korenima sa malim C# kao Java programer. Nadam se da ću nekoliko meseci posle toga moži da prođem ovaj proces iznova, gledajući Python, Objective-C, mobilne platforme (iOS, Android, Windows) ili kroz promenu koncepta u funkcionalni sa popularnošću Clojure ili Scala jezika.

Uvek pomozite.....šifrantu kome treba pomoć

Bajron




Published (Last edited): 11-08-2012 , source: http://www.javacodegeeks.com/2011/02/selecting-new-programming-language-to.html