Warum ist Java so schrecklich lahm und unflexibel? (Bitte sachliche Beiträge)



  • ok danke, ist dann wohl nur noch ein altes Gerücht?!?



  • Wie gesagt, kommt vor allem auf 2 Faktoren an:

    1. Du musst Java auch wirklich für Anwendungsentwicklung einsetzen. Es gibt zwar Ansätze Java zB für 3D-Grafik einzusetzen (Java3D), da ist es aber auf jeden Fall performanter C++ einzusetzen.

    2. Wenn dein Recher schon etwas angestaubt ist und die JVM nicht im RAM halten kann wirds auch problematisch.

    Ansonsten steht der Programmierung mit Java nichts im Wege - ich programmiere derzeit auch lieber Java da die Standard-Bibliothek um einiges besser ausgerüstet ist und ich kein Fan von zusätzlichen Abhängigkeiten bin 🙂

    MfG SideWinder



  • mhhh schrieb:

    ok danke, ist dann wohl nur noch ein altes Gerücht?!?

    leider nicht.
    java ist theoretisch schneller als c++. durch die stärkeren einschränkungen der sprache kann der optimierer mehr rausholen. in c++ ist es möglich, einen zeiger nach int zu casten, dann zur laufzeit eine mathematische vermutung drauf abzulassen, die noch nicht bewiesen ist und die für alle ints zu testen mehrere jahre dauert, abhängig vom ergebnis den int zu verhundsen und nachher wieder in nen zeiger zu casten und den speicher anzusprechen. na, daß dabei der optimierer keine sonne sieht, ist klar.
    nur ist faktisch java noch nicht so weit. in der tat scheint es so, daß man bei java sogar gezwungen wird, große funktionen zu schreiben statt vieler kleiner, weil damit der code schneller wird. noch.
    leider sind die schätzungen sehr unklar, wie lange es noch dauern wird, bis java schnaller als c++ ist. fragste sun, kriegste -2 jahre als antwort. fragste ms, kriegste +inf als antwort. ich schätze mal +30 jahre. aber jeder schätzt da was anderes.



  • SideWinder schrieb:

    ich programmiere derzeit auch lieber Java da die Standard-Bibliothek um einiges besser ausgerüstet ist

    wenn du mal ein wochenende zeit hast, kannste da nicht schnell die java-lib nach c++ übersetzen? das wäre uns allen eine hilfe, denke ich.



  • Da allgemeiner zu gebrauchen hat GUI imho nix verloren in C++.
    Sockets sind nunmal leider immer noch nciht drin.
    Vieles biegt Boost derzeit gerade.
    Gute multinationalisierte Stringbehandlung mit Unicode wär toll, bin aber nicht in der Lage sowas für C++ performant auf die Reihe zu bringen.
    Logger bringt nix da sowieso in C++ jeder seinen eigenen schreibt.

    /Edit: Vor allem Socekts + Multi-Zeichensatz haben mich bewogen meinen IRC-Bot in Java und nicht in C++ zu schreiben.

    MfG SideWinder



  • "Warum ist Java so schrecklich lahm und unflexibel? (Bitte sachliche Beiträge)"
    was ist das denn für ein titel? totel inkompoetente aussage und dann sachliche beiträge wollen? geil 😃

    der geschwindigkeitsunterschied zwischen c++ und java liegt bei ca. 1:1.2, abhängig vom compiler, hopspot, system und am meisten am programmierer. Generelle aussagen sind also ∞



  • Java mit C++ zu vergleichen ist doch wie Äpfel und Birnen.
    Schon durch die JVM wird Java lahmer, aber es ist ja auch nicht primär gedacht für hoche Geschwindigkeiten.



  • Java wär viel besser zu vergleichen mit C#, hast recht. Nur der volkard bringt immer sein C++ ins Rennen :p:)

    MfG SideWinder



  • wie könnt ihr noobs auf son offensichtliches troll posting überhaupt ernsthaft antworten? LOL



  • bahs0rizeherpwnedwtflolkk schrieb:

    wie könnt ihr noobs auf son offensichtliches troll posting überhaupt ernsthaft antworten? LOL

    Weil ich nix besseres zutun hab und die Datenbank vollmülln will



  • ist kien trol poschd



  • Roar schrieb:

    der geschwindigkeitsunterschied zwischen c++ und java liegt bei ca. 1:1.2, abhängig vom compiler, hopspot, system und am meisten am programmierer.

    nee. am meisten abhängig vom problem. kryptographie in java hat faktor 100, während einfache array-sachen gleich schnell sind.



  • SideWinder schrieb:

    Java wär viel besser zu vergleichen mit C#, hast recht. Nur der volkard bringt immer sein C++ ins Rennen :p:)

    mit c# braucht man nicht zu vergleichen. da kann man allenfalls irrelevante mikro-unterschiede zu java suchen.
    klar vergleicht man äpfel und birnen. was tust du lieber essen, äpfel oder birnen? warum sind birnen so furchbar süß? warum ist apfelwein üblicher als birnenwein? fragen über fragen.
    aber wenn einer äpfel mit äpfeln vergleicht, ist das dann interessant?



  • SideWinder schrieb:

    [...] zB für 3D-Grafik einzusetzen (Java3D), da ist es aber auf jeden Fall performanter C++ einzusetzen.

    [...]

    MfG SideWinder

    Oder C# 😉

    Aber ok, hier soll nicht mit C# verglichen werden...bin schon weg...



  • Nochmal zu:

    wenn du mal ein wochenende zeit hast, kannste da nicht schnell die java-lib nach c++ übersetzen?

    Einige Teile wären wie gesagt tatsächlich mal brauchbar...

    MfG SideWinder



  • An einem Wochenende? Niemals. Aber die Bibliothek würde sich 1 : 1 ohne inner classes, ohne anomyme Klassen und ohne Interfaces sowieso nicht gut anfühlen, weder zum implementieren, noch zum benutzen.



  • Natürlich müsste man umdesignen, mir gehts weniger um die 1:1-Benützung als viel mehr um manche Features (Sockets...). Und da bin ich ja nicht der einzige der das erkannt hat, auch Boost bastelt derzeit an einer Socket-Library (Aja, und volkard natürlich auch in seiner vhlib).

    MfG SideWinder



  • Ich will meinen Senf auch mal dazu geben:

    Java muss natürlich langsamer sein als C oder C++, da es doch über die jvm geht... Streng genommen gekommst du doch mit Java nur einen interpretierbaren Code ähnlich wie bei einer Scriptsprache, die die jvm jetzt parsen muss. Und das muss zwangsläufig langsamer sein als code, der direkt vom OS ausgeführt werden kann, das ist Punkt1.

    Allerdings bietet Sun da auch Abhilfe: Das ganze nennt sich "HotPlug" und bedeutet, dass Codeteile, die die jvm sehr oft ausführt, erkennt und direkt als Programmcode übersetzt. So laufen teile von Javaprogrammen, die oft ausgeführt werden ( etwa getter und setter von Objekten ) sehr viel schneller. Ich habe gehört das ein solcher code die selbe Performance bietet wie in C++.

    Auf der anderen Seite ist Java doch in C++ geschrieben ( habe ich auf jedenfall gelesen ) und es wäre echt merkwürdig, wäre ein Javaprogramm schneller als ein C++ Programm 😉



  • wäre ein Javaprogramm schneller als ein C++ Programm

    kann Java nicht schneller als C++ sein? - z.B. mein C++ Compiler übersetz für den größten gemeinsamen Nenner aller CPUs - d. h. kein Support für SSE2, da jemand versuchen könnte mein Programm auf nen Pentium II laufen zu lassen - die virtuelle Maschine erkennt aber, das ich SSE2 hab und optimiert den Code gleich dafür und läuft dadurch doppelt so schnell, weil es in einem char Array 16 Werte parallel bearbeiten kann... usw.

    ich hab festgestellt das meine C# Programme genauso schnell wie meine C++ und diese wiederum genauso schnell wie meine Java Programme sind

    ich würde die Wahl zwischen C++, C# und Java nicht davon abhängig machen das ich irgendwo gehört habe das C++ schneller wie C# oder Java ist - C++ ist eine schlanke Programmiersprache - Java bringt ein riesige gute Bibliothek - da muss man selber entscheiden was man will, das kann man schlecht pauschal sagen



  • @Vertex: Das kannst so nicht sagen, ich kann meinem C++-Compiler sagen, dass er zB für Pentium optimieren soll. Der erkennt das dann halt eben schon zur Compile-Time.

    MfG SideWinder


Anmelden zum Antworten