Hallo Tom,
Warum nimmst Du gerade Java aus?
Das ist doch die größte (und schönste?) aller Bastelkisten.Weil sie dann wenigstens wieder ein strenge Typbindung einhält, die Klassenhierarchie nicht durchlöchert und die ganze schöne Theorie dadurch nicht sofort wieder ad absurdum führt.
Dafür ist sie langsam, wie ich nach einer Kiste Hefeweizen...
Das ist - mit Verlaub - vollkommener Unfug. Was normale Instruktionen angeht, ist Java nur unwesentlich langsamer als z.B. C. Der JIT-Compiler in den aktuellen JVMs ist ratenschnell. Wenn Du Kommandozeilen-Java-Programme schreibst, die nur etwas berechnen sollen, merkst Du den Unterschied zu C eigentlich gar nicht mehr.
Java hat nur bei drei Punkten diesbezüglich Nachteile:
* Startzeit: Es dauert halt einige Zeit, bis die JVM mal geladen ist, etwa
eine Sekunden, je nach Last auch mal mehr. Daher eignet sich Java nicht
für kurze Kommandozeilenprogramme oder CGI-Scripte. Für alles andere,
was etwas länger läuft (Servlets, GUI-Programme, Hintergrundprozesse,
etc.) ist das aber kein Problem.
* Die Standard-Klassenbibliothek für GUIs (AWT/Swing) ist das, was Java
so langsam macht. Zudem mag ich das API von AWT/Swing überhaupt nicht.
Aber das ist kein Problem von Java selbst sondern nur von der
Bibliothek.
* Speicherverbrauch: Java verbraucht für Objekte relativ viel Speicher.
Die Entwickler von Saxon (XSLT-Prozessor) z.B. haben sich einige Dinge
ausdenken müssen, um den Speicherverbrauch niedrig zu halten, um extrem
große XML-Dokumente (geht teilweise in die GB!) noch brauchbar
transformieren zu können, das wäre mit anderen Sprachen nicht ganz so
drastisch ausgefallen. Bei allen alltäglichen Aufgaben, bei denen man
keine Millionen von Objekten braucht, spielt das aber keine Rolle.
Das einzige wirkliche Manko daran ist wirklich die Standard-GUI-Klassenbibliothek. Die anderen beiden Punkte fallen bei alltäglichen Programmen nicht ins Gewicht.
Viele Grüße,
Christian