Java ist schneller als C++!



  • da hats schreiberechtsfehler drin, bitte ignorieren oder behalten 🙂
    morgen reg ich mich an..



  • myMeinung schrieb:

    alles relativ schrieb:

    sondern nur so ein paar Entwicklertools wie Eclipse

    lol
    schön dass du grade die ansprichst...wenn du eclipse "nur" als entwicklertools siehst, wundert mich gar nichts..
    http://www.eclipse.org/community/rcp.php -> und dann lies mal die case studies

    http://www.bioclipse.net/ --> hab ich selbst schon in produktiven prozessen angewendet

    Das "nur" bezog sich auf die Anzahl. Und ich weiß schon sein Jahren, dass man auf Eclipsebasis andere Desktopanwendugnen entwickeln kann, habs sogar schon gemacht. Aber es gibt halt keine Javadesktopanwendung die viele millionen User verwenden, aber C++ Anwendugnen gibts davon sehr viele.

    ➡ Alles vom Einsatzgebiet abhängig.

    jo, aber einsatzgebiet von software is halt nich nur office und games.. 🙄

    Hat auch keiner Behauptet, außer du, damit du ein "Gegenargument" oder mindestens was dummes hast, was du dagegen sagen kannst. Das falsch verstehen liegt dir anscheinend.



  • alles relativ schrieb:

    ..Aber es gibt halt keine Javadesktopanwendung die viele millionen User verwenden, aber C++ Anwendugnen gibts davon sehr viele..

    ➡ Alles vom Einsatzgebiet abhängig.

    💡 ➡ 😕 😮 🙄 😃

    troll 👎



  • Sag das doch gleich, dass du hier nur rum trollst.



  • alles relativ schrieb:

    Aber es gibt halt keine Javadesktopanwendung die viele millionen User verwenden

    Hmmm... http://azureus.sourceforge.net/



  • Gregor schrieb:

    alles relativ schrieb:

    Aber es gibt halt keine Javadesktopanwendung die viele millionen User verwenden

    Hmmm... http://azureus.sourceforge.net/

    eclipse nicht vergessen



  • Na gut ein paar wirst du finden, das "keine" nicht hinhauen wird dachte ich mir schon, aber verglichen mit der Anzahl von C++ Anwendungen im Desktopbereich ist es halt fast nix. Oder will hier einer ernsthaft behaupten, dass das nur annähernd gleichviele sind? In einigen Jahren könnten es schon mehr werden, weil dann die Rechner auch mehr Leistung haben und der zusätzliche Speicherverbrauch und die Startzeit der VM nicht mehr so auffällt.

    PS: Eclipse hatten wir schon.



  • neoexpert schrieb:

    ...kann es schon passieren, dass ein Programm langsamer läuft als das andere, wenn man mit verschiedenen pogrammiersprachen programmiert...

    Man kann gar nicht dasselbe Programm in 2 Programmiersprachen schreiben, weil jede Programmiersprache ihre eigene Semantik und eigene Rahmenbedingungen haben => Sie werden nicht wirklich dasselbe machen.

    ... und genau daraus kommen dann auch die vermeintlichen "Geschwindigkeitsunterschiede der Sprachen" - die in Wirklichkeit nur "Laufzeitvergleiche zweier unterschiedlicher Programme" ist.
    Hätte man "wirklich dieselben Programme" (== sie lassen den Rechner auf Maschinenebene dasselbe tun), würden sie auch gleich lang laufen.

    Ein "innersprachliches Beispiel" ist der ewige Vergleich zwischen std::vector und einem Array in C++: Die beiden tun einfach nicht dasselbe (vector "kann mehr", z.B. dynamisch den Speicher selbst verwalten).

    Gruß,

    Simon2.



  • alles relativ schrieb:

    Na gut ein paar wirst du finden, das "keine" nicht hinhauen wird dachte ich mir schon, aber verglichen mit der Anzahl von C++ Anwendungen im Desktopbereich ist es halt fast nix. Oder will hier einer ernsthaft behaupten, dass das nur annähernd gleichviele sind? In einigen Jahren könnten es schon mehr werden, weil dann die Rechner auch mehr Leistung haben und der zusätzliche Speicherverbrauch und die Startzeit der VM nicht mehr so auffällt.

    PS: Eclipse hatten wir schon.

    Ich glaube eher das man die JVM noch weiter verbessert. Die VM war bis Version 1.2/1.3 nicht so toll. Die Anwendungen waren wirklich langsam und fuer Desktop nicht zu gebrauchen.

    Suns Java ist grade 13 Jahre alt, seit 1999 ist es benutzbar mit Java 2. C gibts schon seit 1972, C++ gibts seit 1990. Selbst Ant (das make-tool fuer Java) wurde erst 2000 veroeffentlicht. Ebenso Maven, ist auch erst 4 Jahre alt.

    Wenn man dies beachtet ist es klar das Mainframe-Desktop Anwendungen eher mit C/C++ entwickelt werden, weil da einfach die Erfahrung, das Wissen und die Bibliotheken da sind. In Java muss man alles von neuem Lernen/Entwickeln. Wenn man dazu noch bedenkt das man in C++ Projekte ganz einfach den alten C Quellcode einbinden kann, ist Java eine sehr junge Programmiersprache.

    Dazu kommt ja auch das C und C++ weiterentwickeln werden. Wieso sollte ein erfahrener Programmierer ploetzlich Java lernen, wenn er sich in C/C++ auskennt? In der Zeit die er braucht um den "Java-Weg" zu lernen, hat er bestimmt schon 3 Projekte in C/C++ abgeschlossen.



  • Falsch schrieb:

    Nein, das ist falsch, bzw. du weißt es nicht besser. "allgemein" bzw. "im Allgemeinen" benutzt man, wenn man keinerlei Einschränkungen macht.

    .....In ähnlicher Bedeutung ist es noch im Adjektiv „allgemein“ (als Gegensatz zu „speziell“) erhalten, was so viel bedeutet wie „umfassend“, „generell“ oder „für alle oder die überwiegende Mehrheit geltend“, etwa für den sprichwörtlich gemeinen Mann. Mit „Allgemeinheit“ wird auch die Gesamtheit der Bevölkerung eines Bereichs bezeichnet. Was der Allgemeinheit gehört, gehört allen zusammen, niemandem allein, ist aber oft von jedem einzelnen nutzbar (siehe Allmende)......

    aus Wikipeia der freien Enzyklopädie...



  • Simon2 schrieb:

    ... und genau daraus kommen dann auch die vermeintlichen "Geschwindigkeitsunterschiede der Sprachen" - die in Wirklichkeit nur "Laufzeitvergleiche zweier unterschiedlicher Programme" ist.

    Genau das meine ich.



  • neoexpert schrieb:

    Falsch schrieb:

    Nein, das ist falsch, bzw. du weißt es nicht besser. "allgemein" bzw. "im Allgemeinen" benutzt man, wenn man keinerlei Einschränkungen macht.

    .....In ähnlicher Bedeutung ist es noch im Adjektiv „allgemein“ (als Gegensatz zu „speziell“) erhalten, was so viel bedeutet wie „umfassend“, „generell“ oder „für alle oder die überwiegende Mehrheit geltend“, etwa für den sprichwörtlich gemeinen Mann. Mit „Allgemeinheit“ wird auch die Gesamtheit der Bevölkerung eines Bereichs bezeichnet. Was der Allgemeinheit gehört, gehört allen zusammen, niemandem allein, ist aber oft von jedem einzelnen nutzbar (siehe Allmende)......

    aus Wikipeia der freien Enzyklopädie...

    Wir sind hier in einem Forum das stark Matheverwandt ist und dementsprechend wird hier auch formuliert.
    Dein zitiertes Blabla ist zwar schön zu lesen, spielt hier keine Rolle. Im Allgemeinen bedeutet hier ohne irgendeine zusätzliche Einschränkung.



  • Ja Matheverwandt, deswegen war dass auch eine falsche Aussage von dir.



  • neoexpert schrieb:

    Simon2 schrieb:

    ... und genau daraus kommen dann auch die vermeintlichen "Geschwindigkeitsunterschiede der Sprachen" - die in Wirklichkeit nur "Laufzeitvergleiche zweier unterschiedlicher Programme" ist.

    Genau das meine ich.

    Du hast uns aber leider bislang seeeehr wenig Hinweise darauf gegeben, dass das Deine Meinung ist. Immerhi hast Du oben immer von "langsameren Sprachen" und "demselben Programm in unterschiedlichen Sprachen" gesprochen ... und nicht von "unterschiedlichen Laufzeiten unterschiedlicher Programme" (was wohl eher weniger für Aufregung sorgt)...

    Gruß,

    Simon2.



  • Wie schon erwähnt glaube ich nicht daran, daß Java oder C++ als Sprache schneller ist. Ich warte ja auf eine JVM Option, daß ein Objekt genau dann, wenn es nicht mehr gebraucht wird, freigegeben wird.

    Oder auf eine C++ Option, daß ein "delete" automatisch erfolgt. (Nein, nicht bei "D". Der Compiler sucht die Zeige im "AST" ab und weiß, wann das Objekt freigegeben werden muss. Zur Optimierzeit, nicht zur Laufzeit)

    Der Weg dorthin wurde von Java bereitet: Der Compiler/Linker/Optimierer ( im fogenden "Optimierer" genannt) braucht die Sicht über den gesamten Code. Der "release" Code hat sowieso nur noch semantische bzw. hermeneutische Übereinstimmungen mit dem Source Code. Da werden ganze Objekte wegoptimiert (Zum Glück!).

    Hat nun der Optimierer den gesamten Programmablauf vorliegen, ist die Sprache EGAL (naja, halt noch ein wenig Zukunftsmusik).

    Dann sollte man dem Optimierer noch die Option mitgeben, ob man "Bytecode" oder "Binärcode" haben will.

    Jeder benutzt die Sprache die ihm gefällt. Gewinner wird dann der bessere Architekt werden.

    Aktueller Stand:
    Persönlich tendiere ich dazu, daß man in C++ den Optimierer besser unterstützen kann. Das hat aber z. B. damit zu tun, daß man mal gelernt hat, wie teuer manche Aufrufe sind und wie man sie vermeidet. Das ginge in Java auch. Muss ich mal testen 🙂



  • Du hast gerade ziemlich genau .NET beschrieben 😉



  • Shade Of Mine schrieb:

    Du hast gerade ziemlich genau .NET beschrieben 😉

    Fast!

    Aber lass man ein wenig weiter denken:
    Der Vorteil von Java / C# usw. ist auch, daß sie den gesamten Quell bzw. Bytecode mit sich rumschleppen. Die Abhängigkeiten in C/C++ sind ja manchmal ganz schön schwierig zu lösen ( also heute finde ich es einfach 🙂 ).

    Es ist gleichzeitig ihr Nachteil. Denn da ist Ballast, der durch DLLs eliminiert wird. DLLs werden nur einmal in den Speicher geladen. Wer aber kennt denn nicht die DLL-Hölle? Wieder eine Abhängigkeit zur Laufzeit!

    Cache is King. Je kleiner ein Programm, desto schneller. Aber über DLL Grenzen läßt sich nicht mehr optimieren! Und interpretierte Sprachen sind fett, da der Bytecode und der Binärcode in den Speicher muss. Zusätzlich auch noch der JIT Compiler.

    Warum eine DLL bauen?
    Plattenplatz kostet nichts mehr.
    Ram kostet wenig.
    Cache im Prozessor ist teuer. -> DLL bringt nur dann was, wenn 2 Anwendungen, die hoch effizient laufen müssen, dieselbe DLL benutzen.

    Architektur heißt dann: Was bauen wir aus Dll ( oder shared object ) und was als "eine" Applikation.



  • Aeh, nein.
    DLLs haben nichts mit Performance zu tun, sondern mit Wartbarkeit und Komposition (DLLs ermoeglichen es Libraries zu schreiben ohne den Source Code hergeben zu muessen und zugleich auch noch Sprachneutral zu sein).

    Auch solltest du, wenn du von Performance sprichst, die 80/20 Regel beachten...



  • Java ist schneller als C++!

    So ein Schwachsinn, und ihr füttert den Troll mit 23 Seiten ...



  • das machen wir alle 2 bis 3 Monate, wenn in einem Thread die Worte Java und C++ vorkommen, sonst wäre es hier doch langweilig.


Anmelden zum Antworten