C++ czy Java? Plusy i minusy tych języków

Witam

Chciałem się dowiedzieć, jakie plusy a jakie minusy mają języki jak w temacie.

Kolega chwali Jave, a mi ona jakoś nie podchodzi. I zastanawiam się czy powinienem się przemóc do nauki Javy, bo może się mi przydać kiedyś w przyszłości, czy znajomość C++ zastąpi naukę (tak naprawde na siłę) nowego języka. Proszę o jakieś opinie, porównania, wady i zalety Javy i C++

Java i C++ to zupelnie dwa rozne swiaty i sa zaprojektowane do innych zastosowan wiec ciezko je porownac jako konkurencyjne w jednej dziedzinie…

osobiscie proponowalbym nauke C++. jezyk ten jest zarowno dosyc niskiego poziomu, tzn posiada taki bajer jak wskazniki i choc kompilator jest bardzo restrykcyjny, to skladnia jezyka pozwala na wiele zachowan ktorych w javie nie zobaczysz. nie jest to wada czy zaleta. raczej cecha.

z drugiej strony C++ pozwala pisac obiektowo, posiada szablony, wyjatki itp itd, tak wiec uwierz mi; jesli nauczyc sie C++ to w zasadzie kazdy kolejny jezyk w stylu java, C# i cala reszta- jesli chodzi o nauke bedzie przebiegac w sposob; “aha, czyli w C++ bylo to w ten sposob, a tutaj jest znacznie uproszczone, badz dodatkowo zabezpieczone”.

@Lena: a jakiego typu kod chcesz pisać? Programowanie czego sądzisz, że będzie Cię interesowało?

Ryan odpowiem w ten sposób, choć nie wiem czy to dobre podejście do sprawy. W Javie nie podoba mi się to, że ona wszystko za mnie próbuje zrobić, ze o wszystkim pomyśli, czasem nawet sama poprawi, a czasem podpowiada wtedy zanim jeszcze zdąrze dobrze pomyśleć co chce napisać…

W C++ kompilator powie że jest błąd i to ode mnie zależy i moich umiejętności jak z tego wybrne, a czasem nawet przez to że nie zasygnalizuję spędze dwa dni, żeby coś naprawić.

Reasumując bardziej zależałoby mi na tym, żebym to ja rządził programem, a nie kompilator pomyślał o wszystkim za mnie. Owszem w Javie jest dużo uproszczeń, ale…no przepraszam bardzo jeżeli będę polegał na uproszczeniach, to boje się że zaczne się uwsteczniać i w końcu nie będę umiał zrobić zagnieżdzonej pętli, albo prawidłowo klasy napisać, bo kompilator uzna że źle to napisałem i poda na tacy błąd i jak go poprawić. Człowiek uczy się na błędach a Java nie pozwoli na taką naukę bo ona wszystko chce za nas robić. I to mi się strasznie nie podoba.

Nie wiem, jak na początku powiedziałem, czy w dobrym kierunku idą moje myśli, ale wolałbym się uczyć na własnych błędach i po trzeciej nocy z rzędu przyszło to ukojenie i radość że w końcu znalazłem czemu program nie działa i że wiem więcej, że tak nie należy robić, bo znowu będę siedział trzy noce, niż żeby powiedziano mi “tak nie rób, bo program będzie działał źle. Zrób po mojemu”, jakto może “powiedzieć” kompilator Javy…

Wg mnie jeśli zaczynasz uczyć się programowania, dobrze jest zacząć od C/C++. Po poznaniu C/C++ łatwiej zacząć z Javą jak i prawie dowolnym innym językiem programowania.

Składnia jest podobna w Javie i C++ dlatego nauczenie się jednego z języków będzie skutkować tym, że łatwiej będzie rozpocząć naukę drugiego.

Wszystko zależy od tego, czy chcesz od razu skakać na głęboką wodę (C++) czy skorzystać z “pomocy kompilatora”, który może pomóc mniej zaawansowanym w meandrach składni.

Zasadniczo warto poznać C++ i Javę, który jako pierwszy it will be up to you :smiley:

Polecam C++, był pierwszy, do tego jak nauczysz się pisać obiektowo w C++, to Java, będzie po prostu uproszczeniem tego, czego aż się nie chce później robić w C++.

No dobra, a powiedzcie mi, jakie zastosowanie ma Java, a jakie C++. Chodzi mi do czego się wykorzystuje te języki, w jakich dziedzinach nauki, czy techniki.

Javy wciąż jeszcze czasem używa się do rozwiązań biznesowych i do aplikacji po stronie serwera (servletów, szczególnie na maszynach Suna z uwagi na wysoką wydajność włókien). C++ wykorzystuje się głównie do aplikacji klienckich w tym gier.

Znaczy, mam rozumieć, że C++ ma większe możliwości od Javy w programowanie samej aplikacji jak i dostosowanie jej do naszych, konkretnych potrzeb?

Zarówno Java jak i C++ są językami ogólnego zastosowania i możesz je wykorzystać do czego chcesz, to bardziej kwestia twoich umiejętności. C++ jest chyba najczęściej wykorzystywany do pisania - ogólnie - aplikacji użytkowych oraz gier.

Jak wspomniał nr47 oba języki są językami ogólnego przeznaczenia. W javie też możesz pisać aplikacje i często ostatnio gry. W sumie wszystko by się dało napisać w javie, ale jaki sens ma wynajdywać powtórnie koło i np. przepisywać oprogramowanie stworzone w C lub C++ na Javę?

To zależy, co chcesz napisać, kwestią nie jest jaki język jest “najlepsiejśi”.

Język dobiera się do konkretnego zadania, nie ważne którego się zaczniesz uczyć, i tak jednocześnie będzie ci się rozwijała wiedza z innych.

OK, rozumiem. To teraz prosiłbym o podpowiedź, o ile ktoś posiada z was taką wiedze, na temat tego:

“Jaka książka do nauki Javy (z Javą dopiero zaczynam jakąkolwiek przygodę), a jaką do C++ (tutaj jestem po dosyć szczegółowej lekturze Symfoni C++, pana Grębosza, więc coś bardziej zaawansowanego bym prosił, coś co pozwoli bardziej zgłębić tajniki tego języka)?”

Jeśli lubisz książki zwykłe, to: http://helion.pl/ksiazki/jv2pod.htm, a jeśli niezwykłe, to: http://helion.pl/ksiazki/hfjava.htm.

Sugeruję kliknąć w link “Przeczytaj fragment książki” i samemu ocenić, bo wybór książki jest dość subiektywną sprawą :slight_smile:

Link: http://gynvael.coldwind.pl/?id=238