Programiranje

Odabir programskog jezika

gboduljak pon 11.8.2014 16:00

Pozdrav svima, imam jedno pitanje u vezi odabira programskog jezika, već skoro dvije godina programiram u C#. Mogu reći da sam stekao solidno znanje WPF-a i WinFormsa kao i izrade web aplikacija (ASP.Net MVC5 / Web Api 2). Također, znam neloše i frontend web tehnologije poput Angular-a i Jquery-a. Nekako, želio bih naučiti programirati i cross-platform desktop i mobile aplikacije, ali C# za sada to ne može ponuditi. Dvoumim se između Jave i C++-a,  C++ me privlači zbog brzine i low-level pristupa hardweru. Po vama jeli mi sada bolje naučiti još bolje C# i Javu ili prijeći na C++ ? 

mariik uto 12.8.2014 12:39
gboduljak kaže...

Pozdrav svima, imam jedno pitanje u vezi odabira programskog jezika, već skoro dvije godina programiram u C#. Mogu reći da sam stekao solidno znanje WPF-a i WinFormsa kao i izrade web aplikacija (ASP.Net MVC5 / Web Api 2). Također, znam neloše i frontend web tehnologije poput Angular-a i Jquery-a. Nekako, želio bih naučiti programirati i cross-platform desktop i mobile aplikacije, ali C# za sada to ne može ponuditi. Dvoumim se između Jave i C++-a,  C++ me privlači zbog brzine i low-level pristupa hardweru. Po vama jeli mi sada bolje naučiti još bolje C# i Javu ili prijeći na C++ ? 

IMHO, ovo tvoje pitanje je najbolji način da zaglaviš u prosječnosti i nikad ne postaneš dobar programer.
Nema baš smisla učit neki jezik tek tako da ga znaš. U biti ako znaš programirati, svaki jezik ćeš moći relativno jednostavno savladati kad ti zatreba. Drugim rječima, nema potrebe da odmah "naučiš" baš svaki feature nekog jezika, a samim tim, nema razloga da ne "naučiš" i javu i c++. Bolje je bit u stanju naučiti ono šta ti treba, nego znati sve o nečemu.

Npr. cross platform desktop i low-level pristup hardveru. Zašto da te ta 2 "requirementa" ograničavaju oko izbora jezika i tehnologije, nije baš da ima tako puno aplikacija koje trebaju i GUI i low-level access, a čak i ako postoje, postoje i načini da se to gui napravi u jednoj tehnologiji, a low-level access dio u drugoj (najbolji primjer su driveri i aplikacije koje služe za konfiguraciju).

Osobno, ja bih ti radije preporučio da, ako te to već cross platform GUI zanima, proučiš neku tehnologiju za to, npr. QT, GTK, WX, u bilo kojem jeziku. Kasnije ti neće biti problem koristiti istu tehnologiju u C++, java, python, lua, ruby ili bilo kojem drugom jeziku...

U suprotnom (da ne kažem ako se zadovoljavaš sa prosječnoti), onda je valjda java najbolji izbor, u većini slučajeva je compile once, run anywhere, jezik i framework se zajedno razvijaju pa sve koliko toliko dobro radi i skoro da nema potrebe gladati dalje.

 

gboduljak uto 12.8.2014 15:21

Hvala ti puno na savjetu. Mislim da se nisam dobrp izrazio, meni nikako nije cilj naučiti jezik tek tako da ga znam, nego naučiti iz njega što mi treba. Odlučio sam da mi je najbolje napisati programčić tipa rss reader u oba jezika i s vremena na vrijeme obnavljati znanje. Svakako radit ću u C# kao primarnom jeziku, a C++ mi može koristit za low level stvari koje koristim u C# aplikacijama.