Seit wann ist VB schneller als C++?



  • Zwischen der Vielfalt der Bibliothek von Java und der VM bzw. den Performanceproblemen läßt sich aber nur mit viel gutem Willen ein Zusammenhang herphantasieren. Mir scheint du lobst in erster Linie die Macht von Sun, die über ihr Baby entscheiden können was sie wollen. C++ dagegen ist im Prinzip unabhängig, der Standard enthält nur das, worüber sich eine Gruppe von Anwendern und Compilerherstellern in Jahrelanger Arbeit einigen konnten.
    Mit der VM oder "Performance ist nicht alles" hat das überhaupt nichts zu tun.



  • Bashar schrieb:

    Mir scheint du lobst in erster Linie die Macht von Sun, die über ihr Baby entscheiden können was sie wollen. C++ dagegen ist im Prinzip unabhängig, der Standard enthält nur das, worüber sich eine Gruppe von Anwendern und Compilerherstellern in Jahrelanger Arbeit einigen konnten.

    Die Entwicklung von Java geschieht durch den Java Community Process. Dieser besteht bei weitem nicht nur aus Sun, sondern aus diversen Firmen und Einzelpersonen. Entscheidungen im JCP werden demokratisch getroffen.



  • Bashar schrieb:

    Zwischen der Vielfalt der Bibliothek von Java und der VM bzw. den Performanceproblemen läßt sich aber nur mit viel gutem Willen ein Zusammenhang herphantasieren. Mir scheint du lobst in erster Linie die Macht von Sun, die über ihr Baby entscheiden können was sie wollen. C++ dagegen ist im Prinzip unabhängig, der Standard enthält nur das, worüber sich eine Gruppe von Anwendern und Compilerherstellern in Jahrelanger Arbeit einigen konnten.
    Mit der VM oder "Performance ist nicht alles" hat das überhaupt nichts zu tun.

    Ok, der Zusammenhang ist nicht klar. Ich wollte die Architektur als Ganzes loben 😉
    Und die VM gehört dazu. Der Geschwindigkeitsnachteil durch die VM wird sich in Zukunft minimieren. Die VM ist Fortschritt (die Vorteile sind ja wohl bekannt). Und die umfangreiche Bibliothek (und ihre Organisation!!) ist Fortschritt. Und die verbesserten Sprachmittel sind Fortschritt.
    Das Ganze soll nicht auf Java fixiert sein, das gilt auch für C# und wohl auch für alle Sprachen, die in Zukunft rauskommen.
    Dinge, die C++ eben nicht hat. Diese extrem maschinennahe Programmierung (ja ich weiß, C++ kann auch anders, aber andere Sprachen können das besser) BRINGT Vorteile, aber in Zukunft braucht man das wahrscheinlich nur noch für Treiber und Bibliotheken. Die Programmierung einer eigentlichen Anwendung muss nicht um jeden Preis so ins Detail gehen, sondern soll mit vertretbarem Aufwand möglich sein.
    Und ich würde Sun jetzt nicht unbedingt als Monopolist Nr.1 hinstellen. 😉
    Dazu hat ja Gregor schon was gesagt.



  • Hm, irgendwie hab ich das gefühl das immer das reine Standard C++ stand 1998 mit den neuesten Sprachen verglichen wird.

    Ich hoffe da denkt auch mal jemand an die vielen vielen Libs und erweiterungen die es gibt 🤡

    Unterm Strich spielt performance aber immer weniger eine Rolle.
    Die Menschen Arbeiten nicht schneller aber die Maschienen schon.
    Also kann die Software ruhig langsamer laufen 🤡 Und unbezahlbar ist bei Software die Arbeitszeit. Für was soll eine Schnitstelle für den Benutzer
    extrem optimiert sein. Der Benutzer kann die Daten garnicht so schnell eintippen wie die Oberfläche sie entgegen nehmen kann.

    Zudem: Unterm strich bekommt man die Sprache durch das Umfeld in dem man Arbeitet vorgeschrieben...



  • Wunderbar Opti, du hast bewiesen das C++ besser ist. Dort kann ich für ein Problem zwischen vielen Libs die passende wählen und kann bei Bedarf auch eine performante nehmen.

    BTW Schreibt mal in Java ein Programm, das seinen eigenen Quellcode ausgibt, dann habt ihr wenigstens ein Argument.

    Bye, TGGC



  • @TGGC

    Weshalb sollte eine Anwendung den eigenen Quellcode ausgeben? Um anzugeben?



  • TGGC schrieb:

    BTW Schreibt mal in Java ein Programm, das seinen eigenen Quellcode ausgibt, dann habt ihr wenigstens ein Argument.

    Das ist vollkommen zwecklos und außerdem mit Google innerhalb von 20 Sekunden zu finden:

    class S{public static void main(String[]a){System.out.print((s+=(char)34)+s+';'+'}');}static String s="class S{public static void main(String[]a){System.out.print((s+=(char)34)+s+';'+'}');}static String s=";}

    So, wo bleibt denn nun die C++-Version meines kleinen Programms da oben?



  • Gregor schrieb:

    So, wo bleibt denn nun die C++-Version meines kleinen Programms da oben?

    Wirst du nicht bekommen 😉 Man könnte da etwas auf der Basis von Greenspun's 10th Law formulieren.



  • Du sollst es nicht ergoogeln, sondern selbst schreiben. Aber da du den Zweck ja ehh nicht siehst...



  • Bashar schrieb:

    Man könnte da etwas auf der Basis von Greenspun's 10th Law formulieren.

    Hmmm...

    Greenspun's Tenth Rule of Programming: "Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp."

    ...gefällt mir! 😃

    Wirst du nicht bekommen

    Schade, nie bekomme ich, was ich will! 😞 😉



  • TGGC schrieb:

    Wunderbar Opti, du hast bewiesen das C++ besser ist. Dort kann ich für ein Problem zwischen vielen Libs die passende wählen und kann bei Bedarf auch eine performante nehmen.

    BTW Schreibt mal in Java ein Programm, das seinen eigenen Quellcode ausgibt, dann habt ihr wenigstens ein Argument.

    Bye, TGGC

    Sorry, die Organisation, der Umfang und die Dokumentation der Java-Libs ist unerreicht.
    Und warum sollten die weniger performant sein wie C++ Libs?



  • A) wofür brauche ich eine Programm, dass seinen Quellcode ausgibt? 😎 Wie sieht ein entsprechendes C++-Programm aus?


  • Mod

    helium logged out schrieb:

    A) wofür brauche ich eine Programm, dass seinen Quellcode ausgibt? 😎 Wie sieht ein entsprechendes C++-Programm aus?

    A)um die aktuellen modifikationen beim "self modifikation code" sich ansehen zu können
    😎 siehe C)
    C) wie schnell ist ein schneller rasteriser in java [edit] einfach nur zbuffer rendering in den graustufen, wir zeigen dir dann wieviel schneller c++ ist[/edit]

    rapso->greets();


  • Mod

    Optimizer schrieb:

    Und warum sollten die weniger performant sein wie C++ Libs?

    die libs selbst, sofern sie auf die spezielle cpu angepasst sind, sollten gleich schnell sein, bloss java ist langsammer, weil java im bytecode kommt. das ist weder eine hochsprache noch ein richtiger assembler, somit läuft es auf einer cpu nicht mehr optimal.

    rapso->greets();



  • @raspo: Nur so am Rande: Ich bin fast reinrassiger C++-Programmierer. Aber die Geschwindigkeit geht mir ziemlich am Arsch vorbei.



  • sterben solche bescheuerten threads eigentlich nie aus?
    megarofl



  • Klar, gleich nach den beknackten Newbie Fragen.



  • Du bist natürlich gleich als Meister vom Himmel gefallen ;o)



  • rapso schrieb:

    die libs selbst, sofern sie auf die spezielle cpu angepasst sind, sollten gleich schnell sein, bloss java ist langsammer, weil java im bytecode kommt. das ist weder eine hochsprache noch ein richtiger assembler, somit läuft es auf einer cpu nicht mehr optimal.

    Nur so als Info: Die BigDecimal-Klasse der Java-Standardbibliothek war früher nur ein Wrapper. Die Funktionalität wurde in C implementiert und über JNI eingebunden. Inzwischen hat man diese Klasse komplett in Java geschrieben und so existiert sie nun auch in der Standardbibliothek. Sie soll jetzt bis zu 5 mal schneller sein. Komisch, oder?

    (...vielleicht war es auch die BigInteger-Klasse, das weiß ich momentan nicht mehr so genau)



  • rapso schrieb:

    helium logged out schrieb:

    A) wofür brauche ich eine Programm, dass seinen Quellcode ausgibt? 😎 Wie sieht ein entsprechendes C++-Programm aus?

    A)um die aktuellen modifikationen beim "self modifikation code" sich ansehen zu können
    😎 siehe C)
    C) wie schnell ist ein schneller rasteriser in java [edit] einfach nur zbuffer rendering in den graustufen, wir zeigen dir dann wieviel schneller c++ ist[/edit]

    rapso->greets();

    A) Das hört sich ja so an, als ob es sinnvolle Anwendungen für diese Art von Programm gibt. Ich war bisher davon ausgegangen, dass das nicht generell für jedes Programm zu realisieren ist, zumindest nicht mit vertretbarem Aufwand. Zeig doch mal ein größeres Programm ~100 Zeilen, das sich selbst ausgibt und etwas sinnvolles macht, bzw. am Besten ein Programm, bei dem das Sinn macht.

    Es war mir bisher übrigens nicht klar, dass man bei selbstmodifizierendem Code einen Umweg über den Quellcode macht. Interessant. Bei Java würde ich auf einem Array arbeiten, welches den Bytecode repräsentiert. Da ist relativ leicht ranzukommen. Bei jeder Klasse. Allerdings soll ja mit Java 1.5 auch eine Compiler-API zur Standardbibliothek hinzukommen, womit das Kompilieren von Java-Code aus dem eigenen Programm heraus leichter wird.


Anmelden zum Antworten