Hallo David! David Haller schrieb am 14.06.2004 04:32 :
Hallo,
Am Mon, 14 Jun 2004, Michael Wenger schrieb:
Messungen einer PC-Zeitschrift, entweder i'X, C't oder Linux-Magazin sind zum Ergebnis gekommen, dass der Performanceunterschied zwischen C(++) und Java immer kleiner wird und fast schon vernachlässigbar ist.
BTW: Der C++ Teil bei dem Test der c't (IIRC) war alles andere als gut und effizient programmiert, z.B. wurden da die M$ Strings/Templates verwendet und nicht die der STL... Mich hat's schon beim lesen des Quelltextes geschaudert. Das portieren auf ANSI C++ hab ich mir aber erspart. Ich wette aber, dass eine STL-Version deutlich schneller waere [1]. Dem Test messe ich also nur eine minmale bis keine Bedeutung bei.
Ich will nicht weiter auf die Performance-Diskussion eingehen. Zeitkritische Anwendungen würde ich auch nicht in Java schreiben. Allerdings geht es dem OP doch wohl hauptsächlich um GUIs. - Und da sieht Java nicht so schlecht aus wie viele behaupten.
Dem kann ich nur zustimmen. Man sollte auch nicht vergessen, dass Java plattformunabhängig ist. D.h. du kompilierst das Programm einmal und kannst es unter sehr vielen Plattformen ausführen (zumindest meistens...).
*MUHAHAHAHAHAHAHAAAHAAHAAA*
Du musst aber schon die _exakte_ JRE mitliefern (fuer alle $Plattformen!) und installieren
Blödsinn! So kannst du das nicht verallgemeinern: Ich schreibe meine GUIs grundsätzlich JRE 1.3.x-kompatibel. Die Features der neueren JREs sind mir nicht so wichtig und lassen sich normalerweise auch anders implementieren. Ein JRE 1.3.x kann man wohl mittlerweile als gegeben voraussetzen. Meine Java-Programme laufen zumindest unter Linux und Windows problemlos mit JREs >= 1.3.0 . Andere OS kann ich mangels Verfügbarkeit nicht testen. Im C bzw. C++-Umfeld gibt es keine Probleme mit veralteten libs? Das wäre mir aber neu.
und den CLASSPATH setzen usw. etc pp., damit's auch sicher laeuft...
Ach Gottchen. Da kann man auch ein Start-Script mitliefern, oder kurz in der Doku erwähnen, welche Pfade notwendig sind. Und was meinst du mit "etc pp."? PC hochfahren, einloggen, oder was?
BTW: bei _mir_ sind bisher alle Java-Apps/Applets gnadenlos lahm und _praktisch_ unbenutzbar gewesen (z.B. auch jedit). Ja, mein Rechner ist kein aktuelles multi-GHz Monster. Soviel zur Portabilitaet.
Ich habe auch nur einen 1GHz-Celeron als Arbeitsrechner zu Hause und kann deine Erfahrungen bzgl. der Performance ansatzweise nachvollziehen. Was aber meinst du mir "_praktisch_ unbenutzbar"? Zu langsam, zu unübersichtlich? Was hat das mit Portabilität zu tun? Schon mal Applikationen angetestet, die kein Swing, sondern SWT benutzen (-> Eclipse)? Ich finde Swing auch nicht mehr zeitgemäß. Es ist äußerst schwierig, damit schnell reagierende GUIs zu bauen. Genau deshalb empfehle ich auch SWT. Ich habe nur dem OP auf die Frage geantwortet, was er benutzen könnte, um GUIs zu entwickeln. Ich habe absolut keine Lust, mich gegen Anfeindungen von eingefleischten C- und C++-Entwicklern zu verteidigen. "Jedem das seine" ist mein Motto und daher habe ich auch auf die Möglichkeit verwiesen, mit Java und SWT zu arbeiten, weil man damit sehr schnell und in der Regel auch einfach zu brauchbaren und halbwegs portablen Anwendungen kommt.Wie gesagt, dass Java in Sachen Performance nicht der Weisheit letzter Schluss ist, bestreite ich nicht. Darum ging es dem OP aber auch gar nicht. Ich hatte mir von dieser Liste eigentlich ein bisschen mehr Offenheit bzgl. alternativer Lösungen erwartet. Damit lag ich wohl falsch :-( Gruß, Michael