C++ je dosta složeniji jezik od Jave, tako da ako imaš vremena bolje je učiti prvo njega, jer posle učenje Jave ide dosta brže.
C++ je konzistentiji kao jezik i prilikom učenja se jasnije vidi razlika izmedju samog jezika i biblioteka koje idu uz njega. Recimo, Java ima kosmičku hijerarhiju klasa (svi nasleđuju
Object); svi izuzeci nasleđuju
Throwable a među njima se opet razlikuju oni koji nasleđuju
Error i
Exception, što je bitno kod obrade grešaka; za paralelno izvrsavanje procesa se mora koristiti
Thread, itd. Na taj način, sam jezik je usko povezan sa standardnim bibliotekama klasa koje idu uz njega. To jesu korisne stvari, ali meni je C++ više po ukusu kao jezik koji je najbliži matematičkom idealu minimalnog i neprotivrečnog jezika, dok mi Java deluje budženo kako bi neke stvari proradile na najjednostavniji način, ali se i pre naleti na granice takvih rešenja. Tako npr. C++
templates su mnogo bolje rešenje od Javinih
generics, mada za elementarne stvari i
generics rade posao.
Sa druge strane, pre ćeš sa Javom uzeti da praviš nešto korisno dok ti za isto to u C++ treba više učenja. Sa Javom ćeš moći brže da kreneš u pravljenje desktop ali i serverskih aplikacija koje će raditi na raznim platformama, dok ćeš za C++ morati da se opredeliš za neki framework, za koji treba videti na kojim platformama može da radi, itd.
Najbolje bi bilo kao što Eurora kaže da naučiš oba. Ima dosta i sličnosti, pa tako kako budeš učio Javin SDK, možeš posle sa mnogo manje truda da savladas recimo
Poco i
Qt za C++.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."