Presiel som z C++ na Javu. C++ je uzasny jazyk hlavne na GUI programovanie desktopovych aplikacii a potom per pristup k nizsim zariadeniam. V C++ mas napisane veci ak Google Chrome, OpenOffice, Samotny Windows (+ nejake Cecko atd.). Napriek tomu by som sa k C++ od Javy uz nevratil.
Podme sa pozriet na vyhody C++ oproti Jave
1. Nativna rychlost kodu - nepotrebuje runtime (Java potrebuje JVM)
2. Moznost manualnej spravy pamate (pointre
) - rucne si pises destruktory a zodpvoedas zas stav haldy. Nebeha ti za zadkom Garbage collector. Pokial ale nie si IMBA koder a nerobis nieco specialne, je to skor obrovska nevyhoda. Na druhu stranu, existuju 3rd party garbage collectory aj pre C++
3. Moznost proceduralneho programovania a ignorovania objektoveho programovania (opat az na par specialnych pripadov nevyhoda)
4. Pristup k nizkourovnovym vrstvam
5. Pristup k nativnym knizniciam OS
6. Kazdy C++kar spomenie pretazovanie operatorov, ja ho neznasam
Urcite by sa naslo nieco (kludne mozete nieco dodat), ale podme sa pozriet, kde skoruje Java
1. JVM bezi na kazdom OS - write once, run anywhere!
2. Uzasny Garbage Collector. Niekedy existoval mytus "Java je pomala" a to bolo hlavne nie prilis stastnou implementaciou garbage collectora prvej Javy. V tomto aspekte sa Java neuveritelne zlepsila. Je to pohodlie, ktoreho by som sa dnes uz nechcel vzdat.
3. Prisne (ale velmi exatne a vyborne) konvencie pisania kodu. Existuje asi bilion derivatov C++ a ked sa pozeras na nejake kody (napr. spominany Google Chrome je napisany v derivate C++) vravis si "Wtf, toto je C++?". Zatial co DOBRE Java kody sa podobaju ako vajce vajcu, je v tom perfektny poriadok.
4. Najbohatsia zbierka kniznic zo vsetkych programovacich jazykov - pre toto je Java tak super popularna. 3rd party frameworky robia Javu viacej ako jej samotni vyrobcovia ;-)
5. Najrozsirenejsi jazyk v biznis sfere - zamestnavatelia platia ovela lepsie ako napr. za PHP (v globale). Najpopularnejsi "neviditelny" jazyk (back-end).
6. Java sa da pouzit vsade - mobily, desktopy, web ...
7. Vela FREE IDE!!! NetBeans je Javacentricky (aj ked podporuje ine jazyky), Eclipse je najpopularnejsie Javacke IDE. IntelliJ je komercna obdoba ale tiez velmi slusne. V C++ je to s FREE IDEckami o 2 ligy horsie.
8. Vyborne spravena genericita, reflexia a multithreading.
9. Javadoc - generovanie HTML dokumentacie rovno z komentarov v kode (pisanych podla istych konvencii - anotacie)
Urcite by sa nasli dalsie aj pre Javu. Ked to na konci zhrniem viac laicky - v Jave zaplatis nutnu dan - spusteny runtime (JVM). Na druhu stranu, riesis veci z vyssej urovne. Teda skor ta zaujima co chces spravit, ako co to robi niekde na urovni bajtov.
PS : Konkurencie schopny kandidat k Jave je Microsoft .NET framework. Ma podobnu ideologiu a principy, len nie je systemovo nezavisly. NA druhu stranu .NET zatial neovladli 3rd party vyvojari, takze vsetko mas krajsie organizovane po kope priamo od Microsoftu.