c++ vs. java... was hat zukunft



  • hi,

    ein freund hat mir vor kurzem offen gelegt aus c++ auszusteigen und java zu lernen.
    es gibt ja auch viele vorteile für java. meint ihr das hat zukunft oder wäre ich mit java besser bedient?



  • je nachdem was du programmierst, natürlich ist java gut aber genausogut ist auch c++

    ich selber bevorzuge c++. sag doch einfach was du programmieren willst, erst dann kann man eine aussage treffen ob ein wechsel sich überhaupt lohnt



  • mollitz schrieb:

    ein freund hat mir vor kurzem offen gelegt aus c++ auszusteigen und java zu lernen.

    wenn man java lernen will, muss man nirgends aussteigen...
    🙂



  • Das wird in kürze in einem Flamewar enden, jede Wette. Und da im C++ - Forum begonnen wird Java den kürzeren ziehen.

    Zurück zur Frage.
    - Java ist wohl schneller soweit zu lernen, dass man damit produktiv arbeiten kann.
    - Um platformunabhängig zu Programmieren hat man in Java ein Runtimepaket. Bei C++ kommt dann einiges dazu (boost, gtkmm, ...) was teilweise eingens zusätzlich installiert werden muss.
    - Java hat keine möglichkeit native Widgets platformunabhängig darzustellen, mit C++ und wxWidget geht das (ich verwende gtkmm, das bekanntlich nur auf einigen Windowmanagern nativ läuft und habs noch nicht vermisst)
    - Man könnte jetzt mal nachforschen was für mehr Platformen verfügbar ist, ein C++ mit den nötigen Biblioteken oder ein Java-Runtime ...
    - Java ist, und bleibt darauf ausgelegt interpretiert zu werden. Selbst wenn man Java in Maschienencode übersetzt, was ja möglich ist, dürfte es einem _guten_ C++ - Programm an performance hinterherhinken

    Soweit die (hoffentlich soweit korrekten) Tatsachen.

    =>
    Native Widgets/Performance/... ==> C++
    Schneller Einstig/GC/... ==> Java

    =>
    Ob C++/Java besser ist kommt auf den konkreten Fall an. Dass es einen Umstieg Wert ist, davon bin ich erstmal überhaupt nicht überzeugt



  • ich hab kb 2 sachen zu können/zu lernen.

    vielen dank erstmal!

    hats noch mehr "stichhaltigere" argumente?

    was den "fall" angeht:
    ich will später schon "professionell" programmieren.

    ich denke auch c++ ist besser für mich!



  • mollitz schrieb:

    ich hab kb 2 sachen zu können/zu lernen.

    java ist recht einfach zu lernen. es bleiben genug gehirnzellen frei für andere sprachen 😉



  • darthdespotism schrieb:

    Das wird in kürze in einem Flamewar enden, jede Wette. Und da im C++ - Forum begonnen wird Java den kürzeren ziehen.

    Du übersiehst eine wesentliche Eigenschaft von Flamewars - keiner gewinnt 😉

    Achja: C++ ist besser. Java hat keine Zukunft. SCNR.



  • Schließen! Schließen! Schließen!



  • mollitz schrieb:

    ich hab kb 2 sachen zu können/zu lernen.

    vielen dank erstmal!

    hats noch mehr "stichhaltigere" argumente?

    was den "fall" angeht:
    ich will später schon "professionell" programmieren.

    ich denke auch c++ ist besser für mich!

    Professionell ist wohl keine ausreichende Aussage. Da kommts schon eher darauf an in welcher Richtung professionell.

    Linux-Kernel (das kann man auch beruflich-profesionell-programmieren!) ist gcc-C und wird das wohl auch bleiben, Java zum Programmieren von Betriebssystemen wird wohl nicht kommen.

    Bei der Spieleprogrammierung ist wohl C++ nach wie vor dominant.

    Im Hardwarenahen sowieso, treiber auch in C, höchstens C++

    Java ist dafür in anderen Bereichen wohl vorne. Auch im kleineren, lokale Firmensoftware kann ich mir z.B. gut in Java vorstellen.

    __________________________________

    Beides hat IMHO Zukunft um den Titel nochmal aufzugreifen

    __________________________________

    audacia schrieb:

    darthdespotism schrieb:

    Das wird in kürze in einem Flamewar enden, jede Wette. Und da im C++ - Forum begonnen wird Java den kürzeren ziehen.

    Du übersiehst eine wesentliche Eigenschaft von Flamewars - keiner gewinnt 😉
    Achja: C++ ist besser. Java hat keine Zukunft. SCNR.

    OK C++ wird hier wohl dominieren und die Java-Leute nicht zugeben dass sie eigentlich verlohren haben 😃

    __________________________________

    In C++ _kann_ man übrigens deutlich _mehr_ machen. Java bietet als Primitive nur das was die VM unterstützt, in C++ hast du alles was das Betriebssystem schafft zur Verfügung. Jedenfalls kenne ich keine möglichkeit aus Java heraus API-Calls zu machen (Es würde auch dem Konzept wiedersprechen). Auch wenn nicht im std:: vorgesehen, hast du fast immer die Möglichkeit inline-Assembler zu verwenden.

    ==> Mit C++ kannst du echt alles machen was OS und CPU hergeben, incl das OS selber programmieren. Mit Java kannst du Anwendungen im Rahmen der VM programmieren. Mit der vielseitigkeit kommt halt auch komplexität irgendwo.



  • mollitz schrieb:

    ich hab kb 2 sachen zu können/zu lernen.
    ...
    ich will später schon "professionell" programmieren.

    🤡 👍



  • Ein Vorteil noch für Java: Du kannst nette Browser-Plugins programmieren.

    Ansonsten richte dich einfach wirklich danach, was du momentan lieber machen würdest, so wie darthdespotism das schon geschildert hat...

    Und noch was zum professionellen programmieren generell: Heim-PCs sind nur ein Markt, für den man programmieren kann. Kaffemaschinen, DVD-Player, Sicherheitssysteme in Atomkraftwerken usw müssen auch programmiert werden, es gibt mehr Bereiche als nur Java/C++.

    Und noch was: Falls du mal Informatik studieren möchtest, wirst du da mit großér Wahrscheinlichkeit zuerst Java lernen. Wenn du jetzt Java lernst, hast du in der Uni Klausurmäßig einen Vorteil, wenn du jetzt C++ lernst, fällt dir der Einstieg in Java dann leichter und du kannst dann doch 2 Sprachen 😋



  • Warum willst du Java nehmen? Frag dich das selbst. Weil du meinst es hat eine größere Zukunft? (Sowohl C++ als auch (leider ;)) Java werden wohl eine ziemlich gute Zukunft haben.) Danach solltest du nicht gehen. Lern programmieren und lern keine Programmiersprache. Wenn du beruflich programmieren willst, musst du in der Lage sein innerhalb kurzer Zeit dir andere Programmiersprachen/Systeme anzueignen.

    Vielleicht solltest du dir lieber Python anschauen, wenn du mit C++ frustriert bist. Die Sprache ist nicht so komplex (wie C++ oder Java) und zur Zeit auch sehr populär (man könnte "gehypt" sagen ;)). Außerdem existieren unmengen an Libraries.

    Java finde ich gerade für Programmier Anfänger nicht sonderlich geeignet. Man wird zu sehr in ein Konzept gedrängt, dessen Sinn sich einem zunächst nicht erschließt. (Neben zahlreicher anderer Probleme.)

    (Bedenke auch, dass du C++ viel universeller einsetzen kannst. Java hat ja eher einen sehr eingeschränkten Einsatz-Rahmen und wird vermutlich zum größten Teil für "Business-Software" oder Handy-Spielchen benutzt)



  • hi, die schönen Tage von Aranjuez, sorry von c++ wären bald vorüber 😮 , wären da nicht die schlimmen Performance Probleme mit Java bei Heavy Computing 😃 (Noch ist da das superschnelle Fortran drin, jedoch gewinnt c++ in diesem Feld immer mehr an Boden 👍 (portiere seit über einem Jahr FTN-->c++. Java hat da nicht zu verlauten, obwohl es einige Gruppen im inet gibt, die allen Ernstes versuchen, Java in der Numerik zu etablieren 🙄 🙄 🙄 ))
    vg tesu



  • tesuji schrieb:

    obwohl es einige Gruppen im inet gibt, die allen Ernstes versuchen, Java in der Numerik zu etablieren 🙄 🙄 🙄 ))

    😮 Java kann ja noch nicht mal IEEE 754 richtig.



  • rüdiger schrieb:

    Java kann ja noch nicht mal IEEE 754 richtig.

    was heisst das?



  • pale dog schrieb:

    rüdiger schrieb:

    Java kann ja noch nicht mal IEEE 754 richtig.

    was heisst das?

    http://de.wikipedia.org/wiki/IEEE_754

    schirrmie



  • Wenn man "professionel" programmieren will, dann sollte man als allererstes begreifen das Sprachen nur Werkzeuge sind. Zu sagen: "C++ ist besser als Java" ist ungefähr genauso falsch wie zu sagen: "Ein Hammer ist besser als eine Motorsäge". Versucht einfach mal mit einem Hammer einen Baum zu fällen...

    Professionelles Programmieren fängt für mich damit an das man sauberes Softwaredesign lernt, daß man begreift wo Qualitätssicherung anfängt usw. und vor allem, daß man immer die Sprache einsetzt die für das angesetzte Projekt am besten geeignet ist. Krampfhaft immer nur eine Sprache einsetzen zu wollen ist imho. eher ein Zeichen von Amateurverhalten...

    Ein Profi sollte sich sowohl in Java als auch in C++ als auch in C# zurechtfinden, denn die Prinzipien von Softwareentwicklung sind nciht an irgendwelche Sprachen gekoppelt.



  • schirrmie schrieb:

    pale dog schrieb:

    rüdiger schrieb:

    Java kann ja noch nicht mal IEEE 754 richtig.

    was heisst das?

    http://de.wikipedia.org/wiki/IEEE_754

    ok, meine frage war missverständlich.
    ich wollte eigenlich wissen: was bedeutet 'Java kann ja noch nicht mal IEEE 754 richtig'
    😕
    java benutzt doch dieses format für fliesskommazahlen, oder täusche ich mich?



  • rüdiger schrieb:

    Java finde ich gerade für Programmier Anfänger nicht sonderlich geeignet. Man wird zu sehr in ein Konzept gedrängt, dessen Sinn sich einem zunächst nicht erschließt.

    du meinst das konzept OOP?
    das ist sehr wohl für anfänger geeignet, teilweise ist es sogar für anfänger verständlicher als mit bits, bytes und pointern zu hantieren.

    rüdiger schrieb:

    (Neben zahlreicher anderer Probleme.)

    welche 'anderen probleme'?
    😕



  • Man muss sich doch fragen, was für eine Zukunft Java hat, wenn es unter Windows von C# das Wasser abgegraben bekommt.
    Und der Tag wird kommen, wo Microsoft .NET für Linux und andere OS anbieten wird, evtl. macht das dann auch Novell.
    Zukunft haben alle 3 Sprachen, aber C# wird wohl das größte Wachstumspotential von allen haben.