C++ / Java -> Vergleich



  • Hi, bitte nicht alle Sachen aufzählen was besser bzw. schlechter ist.
    Ich kenne beide Sprachen sehr gut und finde beide gut. Bzw. beide haben ihre Vor.-und Nachteile.
    Da ich keine Ahnung habe was in professionellen Firmen eingesetzt wird, hab ich jetzt dazu ein paar Fragen:

    1. Was wird mehr eingesetzt ? Sprich in der Anwendungsentwicklung, Spiele, usw...
    2. Wie ist das mit der Zukunfstsicherheit ? Mir ist klar dass C++ vermutlich "nie"
    untergehen wird, aber ich meine man muss heute ja in Firmen auch den Faktor Zeit berücksichtigen...

    Weshalb ich diese Fragen stellen: Man kann beides lernen (was ich auch getan habe) aber mich würde trotzdem interesieren was im Moment auf dem Markt "angesagter" ist.

    PS: Wenn jemand SAchen wie "Java ist lahm, nimm C++" schreibt, dann bitte mit Konkretem Beispiel! Bin für alles offen.

    Gruß WissensHungriger



  • Java wird bei Serveranwendungen mehr eingesetzt C++ bei Desktopprogrammen



  • ::WissensHungriger:: schrieb:

    ...
    Ich kenne beide Sprachen sehr gut ...

    Dann ist ja alles gesagt.
    Der Rest ist Aufforderung zu Flamewar und Trollerei.

    Fron Leichnam noch,

    Simon2.

    P.S.: Die Statistik, wer wann wie oft wo was einsetzt hilft überhaupt niemandem.



  • Du kennst die Eigenschaften der Sprachen? Dann kennst du auch die Gebiete in denen sie eingesetzt werden.

    //EDIT: Dass Java im Vergleich zu C++ todeslangsam ist, ist klar, das ist überall so ... IMMER ... aber es kommt ja nicht immer auf Schnelligkeit an. Beide haben ihre Berechtigung zu Existieren und beide sind auch zukünftig wichtig (wobei C++ vielleicht schneller abgelöst wird).



  • dust schrieb:

    Dass Java im Vergleich zu C++ todeslangsam ist, ist klar, das ist überall so ... IMMER ...

    Wenn du keine Ahnung hast würde ich mich zurückhalten. In "normalen" Anwendungen die auf beiden Seiten sauber programmiert wurden sind, ist Java nicht "todlangsam" - langsamer ja, aber nicht soviel wie du mit dem Begriff eigentlich ausdrückst. Zumal die VM's auch immer besser optimieren können, und Java sich auch weiterentwickelt. Wir reden nicht mehr über Java 1, das ist nicht mehr aktuell.

    Und es gibt sicherlich Anwendungen wo C++ extrem Punkten kann, aber bei einer typischen Durchschnittsanwendung ist der Faktor nicht mehr wesentlich (und es gibt Anwendungsfälle wo Java sogar theoretisch schneller sein kann!).

    cu André



  • Das wird schon noch was.



  • ::WissensHungriger:: schrieb:

    1. Was wird mehr eingesetzt ? Sprich in der Anwendungsentwicklung, Spiele, usw...

    Wenn man nur C++ und Java vergleicht

    Spiele wohl hauptsächlich C++
    Anwendungsentwicklung im Webbereich eher Java
    Anwendungsentwicklung im Desktopbereich eher C++

    ::WissensHungriger:: schrieb:

    2. Wie ist das mit der Zukunfstsicherheit ? Mir ist klar dass C++ vermutlich "nie" untergehen wird, aber ich meine man muss heute ja in Firmen auch den Faktor Zeit berücksichtigen...

    Es gibt heute schon Firmen die für alle Anwendungen nur noch Java oder C# verwenden, C++ hat imho schon einstecken müssen. In anderen Bereichen die Hardwarenah sind, ist C++ aber weiterhin sehr wichtig (dazu zähle ich Spiele, Treiber, Embedded Systems...).

    Der Zeitfaktor wegen der Entwicklung ist schon sehr relevant geworden, und hier punkten halt Sprachen wie Java und C#.

    ::WissensHungriger:: schrieb:

    Weshalb ich diese Fragen stellen: Man kann beides lernen (was ich auch getan habe) aber mich würde trotzdem interesieren was im Moment auf dem Markt "angesagter" ist.

    Ich würde eher unabhängig davon beides lernen. Und wenn du mit C++ anfängst, hast du es mit Java und C# leichter (Umgekehrt nicht wirklich).



  • So, danke für die ganzen Infos! Bitte kein FlameWar starten ! xD
    Also genauso hatte ichs schon vermutet. Nungut, ich muss sagen ich hab java in einem Monat gelernt, da ich schon seit knapp 4 Jahren mit C++ programmiert habe zuvor. Ich finde Java sehr schön vorallem wegen den Sachen die teilweise in C++ genervt haben, also nicht dass ich hier ein Urteil fällen will... Nagut C# kenn ich jetzt nicht wirklich...



  • Laut Tiobe Index ist Java die beliebteste/meist verwendeste, die meisten Programme auf dem Desktop sind wohl in C++ geschrieben.



  • Java ist Hype, auch der durchschnittliche BWLer kriegt das noch zum Laufen.

    Wenn es extrem in die Performance geht, so richtig laufzeitoptimiert, wird es
    nicht die erste Wahl sein.

    Man muß das abwägen - Performance oder einfach mal schnell ein Programm erstellen.
    Beides hat seine Berechtigung.



  • Scheppertreiber schrieb:

    Java ist Hype, auch der durchschnittliche BWLer kriegt das noch zum Laufen.

    Wenn es extrem in die Performance geht, so richtig laufzeitoptimiert, wird es
    nicht die erste Wahl sein.

    Man muß das abwägen - Performance oder einfach mal schnell ein Programm erstellen.
    Beides hat seine Berechtigung.

    Das ist ein wenig unfair gegenüber Java. Java ist mer als Hype. Man kann auch vieles in Java machen, aber wenn es wirklich um jeden Takt geht, wie Computerspiele, dann hast du recht, ist es nicht die erste Wahl. Und wenn es nicht ähnlich optimiert gebraucht wird, hat aber Java dennoch eine Berechtigung.



  • Trollo, sagst ich hab keine Ahnung und stimmst dann zu, wie low ist das denn? Wie man todeslangsam auslegt ist jawohl jedem selbst überlassen, und für mich sind deine "kleinen Faktoren" schon todeslangsam. Und dass Java theoretisch schneller sein kann hat den Humbuck-Of-The-Year-Award verdient. Kein Kommentar mehr ... 👎



  • dust schrieb:

    Und das Java theoretisch schneller sein kann hat den Humbuck-Of-The-Year-Award verdient.

    Das ist nicht nur reine Theorie, sondern ist Tatsache. Die Frage ist aber nicht ob es möglich ist, sondern ob es sich in der Praxis tatsächlich bemerkbar macht (und da es meist ein Sonderfall darstellt, wird man es über den Programmablauf in der Regel nicht mitbekommen). Das Prinzip hierbei ist ähnlich wie bei C#:

    Ein Programm was mit C++ geschrieben und compiliert ist, kann nicht auf jedes Rechnerdetail hin optimiert sein (oder man schränkt sich mit der Plattform sehr stark ein). Zudem gibt es bestimmte Optimierungen die auf ein konkretes Laufzeitverhalten basieren. In beiden Fällen kann die VM/der Just-In-Time Compiler tatsächlich in Bereichen schnelleren Code erzeugen. Das wirkt sich in der Regel aber erst merkbar aus, wenn dieser Programmcode sehr häufig aufgerufen wird (Hier verlasse ich die Java-Theorien, und wende mich C# zu, da ich mich hier besser auskenne).

    Bei C# wird zum Beispiel jeder Codebestandteil beim ersten Aufruf compiliert und für jeden weiteren Aufruf wird dieser Compilierte Abschnitt wiederverwendet. Da hierbei tatsächlich auf die konkrete CPU etc. optimiert werden kann ist es so das der Code schneller sein kann. Da beim ersten Aufruf aber mehr Zeit nötig ist, rentiert sich dies aber wie gesagt nur bei einem mehrfachen Aufruf des Codes.

    So... man kann ja gerne alles als nonsense abtun, aber besser wäre es sich hier zu informieren. Und auch wenn es hier anders aussehen mag: Ich bin kein Java-Fan - ich habe nur etwas gegen die Gerüchte die sich seit anfang über Java halten, obwohl Java sich sehr stark weiterentwickelt hat. Ich bin aber nicht Betriebsblind und klammere mich nur an eine Sprache, und in jeder Sprache gibt es etwas gutes (Es gibt durchaus Gründe für die Sprachvielfallt), aber keine Sprache ist die Antwort auf alles... den das wäre 42 😉

    cu André



  • man sollte aber seine GUIs nicht mit Swing machen. Deren implementation von einem EventHandler sieht in etwa so aus:

    handle(){ sleep(250); /* ms */ handleTheEvent(); }



  • @ java kritiker:

    Sag mal, kennst du JNI ?? WEnn ja dann würdest du wissen, dass java nicht direkt C++ ausschliesst 😉

    Eine andere Frage: Angenommen ich erstelle ein Projekt mit NetBeans auf der "Designer"-Oberfläche... Dürfte ich für ein solches Programm Geld verlangen ? Sprich kein OpenSource etc... ?

    Gruß ::WissensHungriger::



  • Entschuldigung javakritiker, ich meine natürlich Scheppertreiber



  • ERGO-> Ein gesunder Mix aus beiden ist denke ich absolut genial.
    Denn java ist vlt in manchen Gebieten langsamer, aber es bietet geniale Vorteile.

    @Javakritiker: Ich nehme mal an du weißt nicht warum Swing langsamer ist nichtwar ?
    Swing wird von Java selbst "gemalt" und ist auch vollständig ist Java implementiert, dafür garantiert es auf ALLEN Java-unterstützen Plattformen das selbe LookAndFeel. Java hat definitiv seine Berechtigung. Genauso wie C++. Wenn C++ das Map aller Dinge wäre gäbe es keine anderen Sprachen!!



  • Die Sache ist doch so:
    Wenn es nicht auf Speed ankommt, kann ich mir ne ganze Reihe Programmiersprachen vorstellen, die ich lieber als Java hätte.



  • Wie ich schon anfangs sagte, wenn jemand was gegen den Speed sagt, MACHT Beispiele! Trolleri ist hier nicht erwünscht... Ich brauche handfeste Informationen!



  • asc schrieb:

    dust schrieb:

    Und das Java theoretisch schneller sein kann hat den Humbuck-Of-The-Year-Award verdient.

    Das ist nicht nur reine Theorie, sondern ist Tatsache. Die Frage ist aber nicht ob es möglich ist, sondern ob es sich in der Praxis tatsächlich bemerkbar macht (und da es meist ein Sonderfall darstellt, wird man es über den Programmablauf in der Regel nicht mitbekommen). Das Prinzip hierbei ist ähnlich wie bei C#:

    Ein Programm was mit C++ geschrieben und compiliert ist, kann nicht auf jedes Rechnerdetail hin optimiert sein (oder man schränkt sich mit der Plattform sehr stark ein). Zudem gibt es bestimmte Optimierungen die auf ein konkretes Laufzeitverhalten basieren. In beiden Fällen kann die VM/der Just-In-Time Compiler tatsächlich in Bereichen schnelleren Code erzeugen. Das wirkt sich in der Regel aber erst merkbar aus, wenn dieser Programmcode sehr häufig aufgerufen wird (Hier verlasse ich die Java-Theorien, und wende mich C# zu, da ich mich hier besser auskenne).

    Bei C# wird zum Beispiel jeder Codebestandteil beim ersten Aufruf compiliert und für jeden weiteren Aufruf wird dieser Compilierte Abschnitt wiederverwendet. Da hierbei tatsächlich auf die konkrete CPU etc. optimiert werden kann ist es so das der Code schneller sein kann. Da beim ersten Aufruf aber mehr Zeit nötig ist, rentiert sich dies aber wie gesagt nur bei einem mehrfachen Aufruf des Codes.

    was auch wieder so nicht stimmt, denn java speichert nicht nach jedem programm-aufruf eine neue, optimiertere version des programms ab,

    THEORETISCH ist es möglich, das java ZUR LAUFZEIT optimiert, was ich aber
    heutzutage für völligen quatsch halte, kmail zu kompilieren zB dauert 10 mal länger als das programm im durchschnitt läuft, und da soll mir einer erzählen, er könne all die optimierungen während der laufzeit machen

    das ist einfach quatsch und nur theoretisches rumgeblabber


Log in to reply