Also was immer etwas dauert (erklärt vielleicht die Geschichte mit Safari), ist das starten der virtuellen Maschine, die dann Java-Programme zum Laufen bringt. Immer bedenken, damit Java plattformunabhängig sein kann, muß für jede Plattform (Windows, Linux, Unix, Mac OS) zumindest eine Java-Runtime da sein, die dann hochgezogen wird. Die läuft ja schließlich nicht standardmäßig und wird erst bei Bedarf hochgefahren. Hat man genug Speicher könnte man dafür sorgen, daß die VM bei Systemstart bzw. Login gestartet wird und im Hintergrund auf ihren Auftritt wartet. Und dann geht auch Java ab. Der Geschwindigkeitsunterschied ist schon lange nicht mehr eklatant, wenn überhaupt noch
da, wie zu Java Anfangszeiten!
In unserem Betrieb haben wir auch immer wieder Beschwerden über das langsame Java. Was aber immer wieder damit gemeint war, ist das Startverhalten. Unsere IT hat aus diesem Grunde einen eigenen Launcher implementiert, der beim Login im Hintergrund gestartet wird und auf Aktionen lauert - keine Beschwerden mehr!
Ach ja, nur weil man in überlegenen Programmiersprachen unterwegs ist, heißt das noch lange nicht, daß man quasi automatisch auch überlegen programmiert. Oft ist man sich selbst im Weg und progammiert sich in Ecken hinein aus denen man nur durch komplettes Refactoring wieder raus kommt. Aus diesem Grunde halten wir bei uns regelmäßige Designsitzungen und Codereviews ab. Und das hat sich wirklich bewährt. Denn gerade in der objektorientierten Welt ist es wirklich wichtig sich austauschen zu können/müssen. Einzelkämpfer werden immer wieder das Rad neu erfinden und etliches Lehrgeld (oder besser Leergeld) bezahlen - dies haben aber auch alle Sprachen gemeinsam, am Anfang: die ersten Programme am Besten in die Tonne treten, erst nachher hat man den Wissensstamm "ordentliche" Programme zu schreiben, die dann auch von Design bis zur Nutzung durchdacht und ausgefeilt sind!
Generelles Gesetz: "first think, ... then do..."
Try and Error wird in OO immer scheitern!
Bye
Mirko