C++ / Java -> Vergleich



  • Scheppertreiber schrieb:

    Mir geht es (teilweise) NUR um die Geschwindigkeit....

    Das wird hiermit zusammenhängen:

    Scheppertreiber schrieb:

    ...unserer "Entwicklungsabteilung" (das bin ich)...

    Spätestens, wenn Du in einem Team mit >2 Leuten zusammenarbeitest, dominieren andere Aspekte.

    Scheppertreiber schrieb:

    ...
    Wenn große Datenmengen (so ab 100 MB aufwärts) en bloc verarbeitet werden spielt das eine große Rolle. ...

    Hmmm - stimmt so nicht in der Allgemeinheit.
    Ich habe auch schon Programme geschrieben, die Massendaten verarbeiten (die auch GB an Daten verarbeiten) und da war Performance eher untergeordnet.
    Sowas arbeitet man sowieso "im Batch" ab und nicht, wenn ein User davorsitzt und wartet.
    Wichtiger war dann:
    - Datenintegrität (wer will hinterher 2GB Binärdaten nach einem Fehler durchfräsen ?)
    - Sync-Point-Schreibung
    - Wiederaufsetzbarkeit
    - geringer Ressourcenverbrauch (man sollte die Maschine ja auch nicht für andere lahmlegen)
    - Einfache Bedienbarkeit (damit jeder Blödel in der Produktion das anwerfen kann) - gerade auch zum Wiederaufsetzen
    - ...

    Letztlich haben wir es auch (oder sagen wir: Trotzdem) in C programmiert , aber nicht wegen der Performance, sondern einfach weil wir auf einen großen Vorrat an C-Libs zurückgreifen konnten.

    Gruß,

    Simon2.



  • Letztlich haben wir es auch (oder sagen wir: Trotzdem) in C programmiert , aber nicht wegen der Performance, sondern einfach weil wir auf einen großen Vorrat an C-Libs zurückgreifen konnten.

    Soso, wer hätte das gedacht ^^. <- Bitte nicht ernst nehmen. 😃



  • Ich will ja wirklich nicht stören zwischen euren ethischen Religionen (Oh man, genau das will ich doch verhindern), aber nur mal so am Rande, ihr redet fast IMMER von Geschwindigkeit. Bitte lasst den Faktor doch mal weg, was gäbe es dann für GRünde Java nieder zu machen ? Ich mein die gesamte Lib ist doch OpenSource, ok fast. Außerdem um einiges einfacher Plattform unabhänigig zu programmieren als C/C++, selbst wenn man Libs nutzt, kommt man meistens nicht darum rum selber Hand zulegen. So, klar es gibt bestimmt Sachen die kann Java einfach nicht. Hardware nah... Z.B. Laufwerke öffnen... Aber dafür gibt es ja die JNI! Damit sind solche Sachen möglich.

    So nun zum großen Mysterium Geschwindigkeit!
    Diejenigen die sagen, dass C++ SOVIEL schnneller ist, haben (bitte nicht falsch verstehen, dass is kein Aufruf zum Flamewar oder zum Trollen) einfach nicht sehr viel mit Java gemacht. Es gab eben ein Beispiel: Mit den Dateien die sehr groß sind etc. Kennst du NIO ? Dieses Prinzip basiert auf nativen C++ MEthoden (wenn ich mich nicht irre). Und das verarbeiten der Dateien dürfte (Ok, jenach Anwendung!) bei heutigen Rechnern weniger Rechenzeit in Beschlag nehmen, als 8ms oder vlt sogar 32ms auf die Festplatte zu warten bis die Daten gelesen wurden... Und da ist weder C++ noch Assembler schneller. Klar wenn du ne Datei verschlüsselst mit komplizierten Algorithmen dürfte Assembler bzw C++ dann punktne, weil die dann wirklich schneller sein dürften. Vermutlich sogar spürbar. Aber sowas könnte man ja trotzdem wieder native machen. Also ich denke, dass das kombinieren beider Sprachen der Schritt in die richtige Richtung ist. Deshalb wird C++ vermutlich nie aussterben, aber Java wird garantiert noch viel mehr an Bedeutung zukommen und ich bin mir sicher, dass auch die Spieleindustrie iwann Interesse an Plattformübergreifenden Spielen haben werden. UPS, dann müssten sie aber auf directX von MS$ verzichten. DAs geht natürlich GARNICHT!
    Aber falls die Menschheit iwann mal weit genug ist, wäre Java bestimmt eine nette Alternative zur Programmierung von Strategiespielen.

    So, das ist so meine Meinung über beide Sprachen, ich finds ansich lustig zu sehen, wie sehr Java teilweise noch "verachtet", wird und als Hype oder Crap abgetan wird. Ohne Libs kämt ihr doch auch in C++ nicht aus. Ohne boost oder wxWidgets ist es doch echt nervig Programme sauber zu erstellen. Ok es gibt natürlich noch die MEGA-PORTABLE WinAPI!!

    Und wenn ich mich nicht irre,... ist doch die VM in C++ geschrieben. Ich mein SUN hat allen Leuten damit abgenommen, dafür zu sorgen, dass man auf allen Plattformen zurecht kommt!

    ZULETZT noch eine kleines Beispiel aus dem Reallife, wo sich niemand beschweren würde:

    ZIEL: Ich wollt ein Baumhaus bauen.

    Variante 1: Ihr habt nichts was ihr direkt gebrauchen kkönnt. Sprich ihr habt zwar Baumsamen, und Wasser und Sonnne, aber ihr habt kein fertiges Bäumchen dass ihr fällen könntet, um das Holz zu benutzen.
    Genauso bei den Werkzeugen: Ihr habt nur einen Block Roherz. So ihr habt allerdings Feuer und Ahnung über Physik: Trotzdem könnt ihr nicht so einfach Schrauben daraus fertigen, geschweige denn eine Bohrmaschine!

    Variante 2: Ihr habt feriges Holz, und einen Akkubohrer und eine Dose Schrauben.
    Und das Holz klappt sogar bei jedem WETTER(Plattformen), sprich es quillt nicht, und leitet sogar Blitze ab (Ok, das fiktiv :D). Die Tätigkeit des Hausbauens, wirds dir dadurch nicht abgenommen, aber dennoch wird der Weg dahin vereinfacht, da ihr nicht das Rad nochmal erfinden müsst.

    Ich denke mal ihr wisst wofür diese Metaphern stehen...

    GRUß der Foxx



  • Tachyon schrieb:

    Boa ey, ich kann, zumindest bei den Registrierten, echt nicht glauben, dass sie sich tatsächlich mal wieder auf so eine Diskussion einlassen...

    Also ich finde diese Diskussion hier sehr interessant. Sehr viele Entwickler berichten hier von ihrer täglichen Arbeit. Ich finde das sehr lehrreich. Wirklich. Und ich möchte mich dafür bedanken.



  • Foxx90 schrieb:

    ZIEL: Ich wollt ein Baumhaus bauen.

    Variante 1: Ihr habt nichts was ihr direkt gebrauchen kkönnt. Sprich ihr habt zwar Baumsamen, und Wasser und Sonnne, aber ihr habt kein fertiges Bäumchen dass ihr fällen könntet, um das Holz zu benutzen.
    Genauso bei den Werkzeugen: Ihr habt nur einen Block Roherz. So ihr habt allerdings Feuer und Ahnung über Physik: Trotzdem könnt ihr nicht so einfach Schrauben daraus fertigen, geschweige denn eine Bohrmaschine!

    Variante 2: Ihr habt feriges Holz, und einen Akkubohrer und eine Dose Schrauben.
    Und das Holz klappt sogar bei jedem WETTER(Plattformen), sprich es quillt nicht, und leitet sogar Blitze ab (Ok, das fiktiv :D). Die Tätigkeit des Hausbauens, wirds dir dadurch nicht abgenommen, aber dennoch wird der Weg dahin vereinfacht, da ihr nicht das Rad nochmal erfinden müsst.

    Ich denke mal ihr wisst wofür diese Metaphern stehen...

    Nö. C++ vs. Java kann es nicht sein.



  • Soooo..... ? Dann vergleich mal C++ & Standart Library vs. Java StandartLib
    Mir ist schon klar, dass es bei C++ für alles Libraries gibt, aber eben nicht mit der SL... Und wenn doch, bitte klär mich auf!



  • Foxx90 schrieb:

    ZIEL: Ich wollt ein Baumhaus bauen.

    Variante 1: Ihr habt nichts was ihr direkt gebrauchen kkönnt. Sprich ihr habt zwar Baumsamen, und Wasser und Sonnne, aber ihr habt kein fertiges Bäumchen dass ihr fällen könntet, um das Holz zu benutzen.
    Genauso bei den Werkzeugen: Ihr habt nur einen Block Roherz. So ihr habt allerdings Feuer und Ahnung über Physik: Trotzdem könnt ihr nicht so einfach Schrauben daraus fertigen, geschweige denn eine Bohrmaschine!

    Variante 2: Ihr habt feriges Holz, und einen Akkubohrer und eine Dose Schrauben.
    Und das Holz klappt sogar bei jedem WETTER(Plattformen), sprich es quillt nicht, und leitet sogar Blitze ab (Ok, das fiktiv :D). Die Tätigkeit des Hausbauens, wirds dir dadurch nicht abgenommen, aber dennoch wird der Weg dahin vereinfacht, da ihr nicht das Rad nochmal erfinden müsst.

    oja... man hat schon eine Bohrmaschine. Allerdings hat die nur einen Bit: den falschen. Die Schrauben ziehen nicht richtig und das Holz ist zwar stabil, sieht aber miserabel aus.
    So hat man bei beiden Varianten am Ende nur zwei Möglichkeiten: man fährt in den nächsten Baumarkt oder bestellt nen Handwerker. Nur das bei erster Variante nicht damit geprahlt wird, dass es nicht so sei



  • Foxx90 schrieb:

    Soooo..... ? Dann vergleich mal C++ & stan**** Library vs. Java StandartLib
    Mir ist schon klar, dass es bei C++ für alles Libraries gibt, aber eben nicht mit der SL... Und wenn doch, bitte klär mich auf!

    Das passt aber garnicht zu deinem Vergleicht. Dein Vergleich war Lochkarten vs. Programmiersprache.



  • Ja, mir ist schon klar, dass mein Vergleich krass war xD zwutz hats auf den Punkt gebracht... Ich mag C++ auch lieber, aber Java ist mindestens genauso gut bis vergleichbar gut... Halt nur auf anderen Gebieten, wo C++ bei Faktor Zeit einbüßungen macht ...

    Gruß



  • dust schrieb:

    Letztlich haben wir es auch (oder sagen wir: Trotzdem) in C programmiert , aber nicht wegen der Performance, sondern einfach weil wir auf einen großen Vorrat an C-Libs zurückgreifen konnten.

    Soso, wer hätte das gedacht ^^. <- Bitte nicht ernst nehmen. 😃

    Vielleicht wäre es klarer geworden, wenn ich geschrieben hätte "... C-APIs für Hardwaretreiber...".
    (Ebenso wesentlicher Faktor war die Tatsache, dass das C-KnowHow in unserer Abteilung weiter verbreitet ist als Java, C++, Cobol, ASM, ... (was auch jeweils ein paar können - aber eben nicht alle)).

    Gruß,

    Simon2.



  • Foxx90 schrieb:

    Soooo..... ? Dann vergleich mal C++ & stan**** Library vs. Java StandartLib...

    Das ist Quatsch, weil hinter den Standards unterschiedliche Philosophien stehen. D.h.: Die jeweiligen Standardisierungskommitees wollen Unterschiedliches mit ihren Libs erreichen.
    Das wäre etwas so, als ob man ein Auto mit einem Fernseher vergleiche wollte ...
    Die Irritiation folgt üblicherweise genau aus diesem Philosophieunterschied, wenn ein Java-Programmierer beklagt, was alles "fehlt" in der C++-Standardlib oder ein C++-Programmierer, was alles für ein Kram (doppelt und dreifach) in der Java-Lib ist.

    Gruß,

    Simon2.



  • Die C++-Standard-Library kann ich auch auf einer Waschmaschine nutzen. Bei der Java-Standard-Edition geht das z.B. nicht. Was mache ich da? Genau, ich muß eine abgespeckte Java Micro Edition (JME) benutzen. Wären wir wieder dort, wo angeblich C++ ein defizit hat. Mit dem Unterschied, das ich C++ zur Desktop- oder Enterprise-Variante erweitern kann. Was ich mit der JME nicht machen kann. Da muß ich mich mit einem anderen Java-"Standard" bedienen.

    Ist Java am Ende optimaler? Nein, ich sehe nur, das ich am Ende auch nicht mit einer Edition auskomme. Also kann ich auch bedenkenlos C++-Standard nehmen und um die für mich wichtigen Libs erweitern.



  • Ist schon schwierig diesen ganzen "Argumenten" zu widerstehen.



  • Simon2 schrieb:

    Letztlich haben wir es auch (oder sagen wir: Trotzdem) in C programmiert , aber nicht wegen der Performance, sondern einfach weil wir auf einen großen Vorrat an C-Libs zurückgreifen konnten.

    das kann nicht der grund gewesen sein, denn C libs kann man auch von C++ aus benutzen 🙂



  • Nagut, trotzdem hat es Java nicht verdient als Hype oder Crap bezeichnet zu werden...



  • Was macht ihr so ein Drama daraus? Java hat ein Anwendungsgebiet wo es Quasi-Standard ist und somit kann Java gar kein Hype oder Crap sein, bzw. es spielt keine Rolle, weil ein Standard einfach mehr Wert hat (siehe z.B. XML ist auch nicht das Gelbe vom Ei, aber Standard), und dieses Anwendungsgebiet sind die Browser-Applets.
    Java ist die einzige Sprache mit der man eine halbwegs komplexe interaktive Anwendung einigermaßen performant im Browser realisieren kann und dabei vorraussetzen kann, dass der Anwender sich ein benötigtest Plug-In installieren will und es dieses überhaupt gibt für seinen Browser.



  • fricky schrieb:

    ...das kann nicht der grund gewesen sein, denn C libs kann man auch von C++ aus benutzen 🙂

    Stimmt - mir ging es auch um die Entscheidung zwischen C&C++ auf der einen und Java, Cobol, ASM,... und all den anderen auf der anderen Seite.
    Zwischen C und C++ fiel die Entscheidung aufgrund von Team-KnowHow und Laufzeitplattform (auf der bei uns leider keine C++-Runtime zur Verfügung gestellt wurde 😞 ).

    Gruß,

    Simon2.



  • Java-Progger schrieb:

    Was macht ihr so ein Drama daraus? Java hat ein Anwendungsgebiet wo es Quasi-Standard ist..., und dieses Anwendungsgebiet sind die Browser-Applets.

    😃 👍 Dafür gibts den Trollaward des Monats.



  • für desktopanwendungen ist's ja nicht zu gebrauchen oder?



  • ?? Wieso denn nicht ? Eclipse ? NetBeans ? Sind das keine Leistungsstarken Desktopanwendungen ? ->> Nasa World Wind ?


Anmelden zum Antworten