Ist Java wirklich so langsam?



  • Original erstellt von kingruedi:
    Was mich noch stört, sind lange Ladezeiten,

    Da gebe ich dir mal uneingeschränkt Recht. Es ist wirklich störend, dass Java-Programme soviel Zeit zum Starten benötigen. Allerdings wird daran gearbeitet. Angeblich soll der Start unter Java 1.4.2 schon 15% schneller verlaufen, als unter 1.4.1. Das ist noch nicht viel, aber es wird weiter daran gearbeitet. Weitere Verbesserungen sind für Java 1.5 angekündigt. Das wird wohl Anfang 2004 erscheinen (bzw. als Beta schon etwas früher).



  • @ Volkard: Da du zu jeder Frage "Nein." gesagt hast: Kannst du das letzte "Nein." mal begründen? (detailiert)

    EDIT: Was ist ein "etwas größeres" Programm?

    [ Dieser Beitrag wurde am 10.07.2003 um 21:03 Uhr von Gregor editiert. ]



  • Original erstellt von Gregor:
    **@ Volkard: Da du zu jeder Frage "Nein." gesagt hast: Kannst du das letzte "Nein." mal begründen? (detailiert)
    EDIT: Was ist ein "etwas größeres" Programm?
    **

    an sich bin ich es müde, leuten, die aufs java-marketing reingefallen sind, und die außer java nix kennen, was beizubringen.
    und würdest du c++ gerafft haben, wärste voll meiner meinung, was java angeht. die ausdruckskraft von gutem c++ ist einfach gewaltig und java dagegen nur spielzeug.



  • Original erstellt von volkard:
    **
    an sich bin ich es müde, leuten, die aufs java-marketing reingefallen sind, und die außer java nix kennen, was beizubringen.**

    Dafür, dass du müde bist, bist du heute aber ziemlich aktiv. 😉

    die ausdruckskraft von gutem c++ ist einfach gewaltig und java dagegen nur spielzeug.

    Für meinen Programmierstil bietet Java genau die richtigen Ausdrucksmittel, die C++ übrigens nicht bietet. (Ich nutze massiv Reflection)

    [ Dieser Beitrag wurde am 10.07.2003 um 21:30 Uhr von Gregor editiert. ]



  • Ich nutze massiv Reflection

    Wozu, außer zum bequemen Testen, nutzt man massiv Reflection?



  • Original erstellt von HumeSikkins:
    [quote] Ich nutze massiv Reflection

    **
    Wozu, außer zum bequemen Testen, nutzt man massiv Reflection?**[/QUOTE]
    mir sind sponaten eingefallen:
    a) zum sertialisieren, aber ich hab vergessen, daß das auch so schon geht.
    b) um interfaces zu bauen, aber ich hab vergessen, daß das auch so schon geht.
    c) für typsichere container, aber ich hab vergessen, daß das auch so schon geht.
    d) irgendwas cooles, was man erst nach 15 sekunden überlegen widerlegen kann.



  • Pluk Ins



  • Original erstellt von <n00b>:
    Pluk Ins

    benutzt man massiv pluk ins?
    aber hast recht, für so abgefahrene sachen kanns evtl gut sein.



  • ich glaub', ich krieg Pluk..... 😃



  • ich glaub', ich krieg Pluk.....

    Jürgennnnnnn.



  • Kleine Anekdote warum wir alle in der Firma als Editor Homesite verwenden.

    Da wir ja eigentlich PHP Programmieren kam unser Chef einmal auf die Idee das Zend Studio zu testen. Zend Studio ist eine komplette IDE fuer PHP - die kann wirklich alles was das Herz begehrt. Kleiner Nachteil: Sie ist in Java geschrieben.

    Nunja, das machte uns nichts aus - wir benutzten es halt mal. Doch irgendwie reichen 128MB Ram fuer das Ding nicht. Das Starten alleine dauert etwas laenger als das Starten von meinem Visual Studio (und VS ist erheblich groesser).

    Nunja, das machte uns nichts aus - wir benutzten es halt mal. Doch irgendwie stand der ganze PC still wenn man einen Funktionsnamen eintippte -> nach 3 bis 5 sekunden kam dann die Parameter liste der Funktion.

    Nunja, das machte uns nichts aus - wir benutzten es halt mal. Doch irgendwie stand der ganze PC still wenn man versucht hat ein Directory zu durchsuchen. Mit Homesite ging das in locker 1/10 der Zeit + man kann nebenbei noch mit dem PC arbeiten.

    Nach einer Woche schmissen wir es weg und benutzen seit dem Homesite. Homesite kann bei weitem nicht so viel, laeuft dafuer stabiler (!!) und schneller.

    Es kann jetzt natuerlich sein, dass Zend Studio wirklich schlecht programmiert ist (hab das neueste Java drauf gehabt, also daran kanns nicht liegen. Damals wars 1.4.x - auf jedenfall ein 1.4 - ist erst n halbes jahr her), aber ich muss zugeben, dass ich noch nie so eine langsame IDE gesehen habe...

    Von meinen Ausfluegen in den JBuilder 4 will ich garnicht reden.
    Oder von den paar Sekunden in denen mein Haupt PC (1,7 GHz mit 512MB DDR) still steht, wenn die JavaVM vom IE geladen wird.

    Ich kann kein Java und kann somit auch nicht beurteilen ob Java einfach langsam ist, oder ob es an den Programmieren liegt. Da Java ja sehr einfach ist, kann es durchaus seien dass, wie in PHP, teilweise Idioten dran gesetzt werden um Programme zu schreiben. Kann auch sein, dass die JavaVM nicht gut optimiert. Ich weiss es nicht. Ich weiss nur, dass ein normales Java Programm noch jeden meiner Rechner in die Knie gezwungen hat.



  • @TriPhoenix:
    Haste mal die GTK version von Eclipse genutzt? Da merkste aber richtig Speedunterschied.

    Weitere merkwürdigkeit:
    Hatte früher mal 2 Wochen auf meinem Gentoo die Java Version - nach dem Start von Eclipse - 50MB * 4 Java only weg? hmmm - so schnell konnte man nicht kucken, wie der weniger wurde. Seltsam - vorher hatte ich mit System + X + Seti grad mal 92MB benötigt. Dann war er nach Eclipse auf knapp 300MB? Hatte ich nur eine Verbuggte Java version, oder ist das normal? Zumindest ist die GTK schneller, und braucht weniger RAM



  • Original erstellt von SnorreDev:
    **@TriPhoenix:
    Haste mal die GTK version von Eclipse genutzt? Da merkste aber richtig Speedunterschied.
    **

    Eclipse ist nach wie vor in Java geschrieben. Was der unterschied zwischen win32, motif, gtk etc. ist, ist die SWT-Bibliothek, der Teil der lahme Klumpen wie Swing ersetzt und deswegen die Schnittstelle zwischen Grafik des Betriebssystems und Java. Und die muss man sowohl bei Swing wie auch bei SWT natürlich auf alle Zielplattformen anpassen. Der Rest ist Java und baut darauf auf.



  • Kaum, wenn du ein Windows oder Linux am laufen hast, wird auch Java laufen.

    /me hat FreeBSD laufen, aber deswegen laeuft Java noch lange nicht.
    Genauso wird Java nicht laufen, wenn du Linux am laufen hast.

    mfg
    v R



  • warum sollte Java nicht laufen, wenn man Linux hat? Und für FreeBSD gibt es doch

    http://www.freebsd.org/java/

    Aber was ich nicht verstehe, ist wie Java eigentlich aufgebaut ist. Es gibt ja mehrere Packete

    J2EE - scheint eine Java Version für High-End Bereiche zu sein
    J2SE - scheint für normale Desktop Anwendungen zu sein
    J2ME - für Embedded Anwendungen
    Java VM - VM == Virtuelle Maschine

    aber ich versteh nicht, warum es 3 unterschiedliche Javas gibt, wenn es doch eigentlich platform unabhängig ist und was muss man eigentlich installieren, um Java nutzen zu können auf einem normalen Computer? J2SE+Java VM?



  • Original erstellt von TriPhoenix:
    Eclipse ist nach wie vor in Java geschrieben. Was der unterschied zwischen win32, motif, gtk etc. ist, ist die SWT-Bibliothek, der Teil der lahme Klumpen wie Swing ersetzt und deswegen die Schnittstelle zwischen Grafik des Betriebssystems und Java. Und die muss man sowohl bei Swing wie auch bei SWT natürlich auf alle Zielplattformen anpassen. Der Rest ist Java und baut darauf auf.

    D.h. man muss nach wie vor OS-spezifischen Bibliotheken nutzen, damit die GUI zügig läuft??? 😕
    Sollte nicht gerade das der grosse Pluspunkt von Java sein, Plattform-unabhänginge GUI-Programmierung??
    Weil plattformunabhängigen Kern-Code kann C++ auch.
    übrigens gibt's GTK selbst schon für Win32, Motif etc.



  • warum sollte Java nicht laufen, wenn man Linux hat? Und für FreeBSD gibt es doch
    http://www.freebsd.org/java/

    Das ist korrekt, es muss installiert werden!

    mfg
    v R



  • Sollte nicht gerade das der grosse Pluspunkt von Java sein, Plattform-unabhänginge
    GUI-Programmierung??

    Hmmm...es laeuft zwar nicht unter nem Browser, aber dann kannste auch QT, gtkmm,
    gtk oder wxWindows nutzen, wenn de Plattform-unabhaengig ne GUI programmieren
    willst.

    mfg
    v R



  • Jetzt möchte ich mal die Infos und Erfahrungen loswerden, die ich über Java habe, die aber überhaupt nicht zusammenpassen:

    Im Fernsehen sah ich mal einen Sprecher von Siemens, der behauptete, dass kleinere, zeitkritische und hardware nahe Applikationen bei Siemens ind C++ geschrieben werden, dass bei größeren Projekten aber JAVA der Vorzug gegeben wird. Begründet wurde dies mit der schlechteren Performance und dem stabileren Verhalten von JAVA. (Vielleicht sind Siemens-Leute im Forum, die diese Aussage bestätigen oder widerlegen können?)

    Hier im Forum gibt es immmer wieder Stimmen, die sagen, dass JAVA-Applikationen fast genauso schnell sind wie C++ - Applikationen. Dies widerspricht mal der Aussage des Siemens-Sprechers. Zum zweiten hab ich mir vor einiger Zeit aus Interesse mal Forte4Java auf meinen Rechner gespielt und versucht damit zu arbeiten. Wenn ich Forte gestartet hab, konnte ich mir einen guten Tee machen und musste ich dafür sorgen, dass das Start-Bild nicht im Vordergrund steht, sonst hängte sich der Rechner auf. Performance ging so einigermaßen, aber während des Arbeitens verlor die IDE immer mehr Funktionen. Neustart, mit der entsprechenden Wartezeit, war dann wieder nötig um wieder alles nutzen zu können.
    Dann arbeite ich ganz gern mal kostenfrei und legal mit OpenOffice oder dem alten Star-Office. Zu hause nehm ich mir die Zeit, bis das geladen ist und ich nehme auch die Abstürze(! sind aber imho bei Word auch nicht besser) in Kauf. Die Wartezeit ist aber schon oft lang.
    Was wieder auf einem anderen Blatt steht ist die Theorie. Ich hab auch einiges über JAVA und JAVA-Programmierung gelesen. Wenn das alles so stimmt und auch umgesetzt wird, dann sollte JAVA eigentlich ohne Absturz laufen.
    Irgendwo bleibt nun die Frage: Lügt irgendwer oder sind JAVA-Programmierer einfach schlechter ausgebildet bzw. unvorsichtig. Liegt es vielleicht daran, dass JAVA durch Swing oder ähnlches in die Knie gezwungen wird? So geartete "Argumente" hab ich auch schon gelesen. Aber auch die Benutzeroberfläche gehört für den Anwender zum Programm und es hilft nichts, wenn superschneller Code nicht zur Anwendung kommt, weil der Benutzer nich warten möchte, bis sich die Oberfläche endlich aufgebaut hat.

    Bin für Infos immer zu haben

    Ein verwirrter Kauz01 😕



  • Also solange eine Sprache nicht im für das vorliegende System ausführbaren Maschinencode vorliegt, sondern nur in einem abstrakten Bytecode, der interpretiert werden muß, kann diese Sprache NIEMALS schneller sein, als ein entsprechendes anderes Programm, welches laufzeitfertig bereitsteht. Es sei denn, es hat jemand ohne Sachverstand bzw. ausreichende Kenntnisse programmiert.
    Wenn ein JAVA-Programm vor dem Erststatt einmalig compiliert werden würde, sähe die Sache sicher auch anders aus. Ob aber der Weg von JAVA

    Java-Source --> Bytecode --> Interpreter, der Programm ausführt

    schneller ist als C/C++

    Source -> ausführbares Programm

    sieht wohl jeder selber.

    Letztlich hängt aber auch viel vom Programmierer ab. Durch optimale Programmierung kann man schon einiges rauskitzeln. Wenn man jedoch zwischen seinem Programm und der Oberfläche, die der Anwender sieht, zig Programm-Schichten dazwischen hat, muß natürlich die Geschwindigkeit leiden! Dann hängt vieles davon ab, wie gut diese einzelnen Schichten programmiert sind.

    Um das Problem zu umgehen, hat MS ja vor ettlichen Jahren ActiveX bei Spielen aus der Taufe gehoben und damit den modernen Spielen den Weg auf Windows geöffnet. Ansonsten würden wir heute noch unsere Spiele aus DOS heraus laufen lassen, weil nur Leute ohne Ahnung ein ruckelndes PacMan Spiel auf Windows gut finden würden.

    Was ich an den OOP-Sprachen etwas bemängle, ist der sorglose Umgang mit Ressourcen. Man klickt halt ein bissle was zusammen, schreibt ein paar Ereignisbehandlungsroutinen und fertig sind mit 500 Programmzeilen riesen Programmonster von hunderten von KBytes.
    Wenn man sich mal alte C64, Amiga oder auch DOS-Programme ankuckt, die sogar damals in Zeiten knapper Speicher speicherresident waren, so weiß man, was ich meine. Klar sind auch die Ansprüche an die Software größer geworden. Keine Frage. Aber den Druck, immer schneller Software zu schreiben und auf den Markt zu werfen, ist nicht zwingend ein Fortschritt! Mir reicht mein Word97 vollkommen aus und ich wüßte nicht, welches Forummitglied hier wirklich WordXP tatsächlich und häufig ausreizt! Viele legen halt Wert auf Animationen und coole Oberflächen, bei denen der Prozessor halt entsprechend gefordert wird. Und wenn man bei der Software Version 123.0 keinen Markt für neue Software mehr hat, dann macht man die halt mit Marketing, Support-Politik und Marktmacht einen neuen Markt auf. Man suggeriert den Leuten einfach, daß es unendlich super toll ist, diese neuste Version, die 10 Sachen mehr kann, als die alte Version mit 820 Funktionen, zu kaufen. Schließlich gibt es auch ein neues Look & Feel, wie man es schon vor 5, 6 Jahren schonmal hatte....
    Und schließlich will die Hardware-Industrie auch ihr Zeugs verkaufen....

    Erinnert mich oft an das Covern alter guter Musiktitel. Im Grund das Gleiche Lied, nur ein bissel dran rumgeschraubt und alle finden das Megatoll und kaufen fleißig die CD für 49€ dazu...

    Aber stellt Euch mal vor, ein C++ Programmierer müßte heute in C++ das Programm für die Mondfähre von 1969 schreiben! (Speicher war glaub ich 8 KByte). Da sieht man schnell alt aus. Komischerweise hat das aber damals auch ohne OOP mit sorgfältiger Planung ganz gut geklappt! Allerdings mußten die auch nicht ständig Betriebssysteme und Compiler nach 6 Monaten wechseln.... 🙄

    C++ und Java haben natürlich ihre Daseinsberechtigung und die Zeit geht weiter. Aber Java als letzte Rettung der Informatik hinzustellen, is wohl arg übertrieben. Und wer nicht vernünftig mit Zeigern umgehen kann, dürfte meiner Meinung nach sowieso nur in Basic programmieren, bis er das mal richtig gelernt hat.


Anmelden zum Antworten