Hallo Candid ;~)
Java mag zwar von der Sprache und vom Konzept eine wunderbare Sprache sein...
Hier sind wir einer Meinung :~)
Ist momentan auch meine bevorzugte Sprache.
...aber die Programme, die dabei herauskommen, halte ich für unbrauchbar.
Ich würde sagen "unbrauchbar" ist ein sehr hartes Urteil.
Wenn man davon ausgeht, dass verschiedenen Statistiken zur Folge etwa 60% aller an dem Umfragen teilnehmenden Programmierer u.a. Java verwenden, muss schon etwas mehr dahinter stecken.
Als Beweis der Brauchbarkeit könnte man beispielsweise das Java SDK/IDE Eclispe nennen, welches vollständig in Java geschrieben wurde, und wirklich ein Paradis unter den IDEs darstellt...
Ich persönlich benutze Java, um anspruchsvolle Client/Server-Programme zu entwickeln, da ich finde, dass einem hier viele Möglichkeiten in einer vergleichsweise einfachen Anwendung geboten werden (Beispiel Datagramm-Sockets und Datagramm-Packets für UDP usw.). Damit will ich allerdings nicht sagen, dass Winsock und Co. nicht einfach währen.
Ich habe schon viele Java-Programme benutzt, aber wirklich alle davon haben spätestens nach zwei Tagen 50% meines Hauptspeichers gesaugt
Das ist eine allgemein bekannte Tatsache, dass VMs nun mal speicherfressend sind, aber was mir neu ist, ist, dass das Phänomen erst nach einigen Tagen auftritt. Hast Du die Programme etwa Tage lang laufen lassen? Wenn die JVM nicht mal 2 Millisekunden frei hat, um den Garbage-Collector anzustoßen, hat der Programmierer immerhin noch die Möglichkeit, dies selbst zu erledigen, wobei das jedoch lediglich eine so genannte "Empfehlung" an die JVM, also nicht binden ist.
Ich kann mir nicht vorstellen, dass das an der Unfähigkeit der Programmierer der Programme liegen soll.
Ist aber trotz allem ein primäres Bewertungs-Kriterium, was die Leistungsfähigkeit eines Programmes angeht.
Weiterhin macht man es dem Benutzer nicht leicht, wenn er ständig hin- und herwechseln muss zwischen verschiedenen Javaausgaben (Blackdown und Sun zum Beispiel)
Mir ist neu, dass man Javaprogramme sogar auf Blackdown ausrichten muss. Ich finde die Existenz von Blackdown jedoch ohnehin schon überflüssig, da man ebensogut die original JVM laufen lassen kann. Das Argument des Open-Source ist hier fraglich, da SUN selbst die Patches von Blackdown verwendet, und somit Einschränkungen in der Benutzung des Codes entstehen (siehe u.a. Blackdown Wikipedia).
Allerdings hast Du recht, was das Hin-und-Her mit den ganzen Java-Versionen betrifft. Der Programmierer hat jedoch die Möglichkeit, die Version der JVM während der Laufzeit zu überprüfen (System-Properties), und ggf. verschiedene Meldungen zu machen, angepasste Klassen aus dem Netz zu laden und zu installieren, oder einfach auf die kritischen Funktionen zu verzichten.
Java ist sicherlich kein Ansatz für Programmierer, die Leistung brauchen (Leistung ist Arbeit durch Zeit, nicht Arbeit), aber dennoch ist es eine willkommene Alternative für Programme, bei denen die Leistung nicht im Vordergrund steht, und deshab bleibe ich bei meiner Empfehlung.
So, nun muss ich aber los... ;~)
Freundliche Grüße
Stefano Albrecht