Quo Vadis Java

Mittlerweile ist die aktuelle Java SDK-Version (1.6) fast 3 12 Jahre alt (!) und noch immer gibt es kein neues Release. Gerüchten zufolge könnte Java 1.7 im September diesen Jahres freigegeben werden. Damit wäre dann dann zwischen beiden Releases fast 4 Jahre (!) vergangen.

Sieht man sich die Liste der neuen Funktionen an, so muss man doch feststellen, dass es erstaunlich wenig Neues gibt. Anscheinend wurde mehr diskutiert welche Features aufgenommen werden sollen und wie diese aussehen sollen, als das wirklich etwas realisiert wurde. Die Diskussionen ob “Closures unterstützt werden sollen oder nicht sind (und mit welcher Syntax) anscheinend noch immer nicht abgeschlossen (man möge mich korrigieren, falls ich falsch liege). Aber dafür kann man zukünftig Strings in select/case-Anweisungen verwenden. Immerhin etwas :-).

Verantwortlich dafür, dass es so langsam voran geht, ist in meinen Augen der Java Community Process. Dass “Development by Commitee” nicht funktioniert bzw. Entwicklungen extrem verzögert, hat sich schon bei COBOL gezeigt. Dort ist der aktuelle Standard von 2002 (!) und dessen Verabschiedung hatte sich - wenn ich mich recht erinnere - um mindestens 3 Jahre verschoben. Die aktuelle Frage ist wie es mit der Entwicklung von Java nach der Übernahme von Sun durch Oracle weitergehen wird. Mit der Änderung der Farben auf der Java-Website war Oracle ja schnell.

Vielleicht geht es Java aber auch so wie es COBOL erging: es wird verschiedene Implementierungen geben, die den Standard mehr oder weniger implementieren. Vielleicht haben wir dann ein Oracle-, IBM- und ein Open-Java.

Viel spannender als die Weiterentwicklung von Java sind in meinen Augen die verschiedenen neu entstandenen Programmiersprachen, die in den letzten Jahren neu entstanden sind und alle auf der Java-VM laufen: Groovy, Scala sind nur zwei Beispiele. Insbesondere Scala wird schon von vielen als das “neue Java” bezeichnet. Wer z.B. die Vorteile funktionaler Programmierung nutzen möchte, sollte nicht auf die Implementierung von Closures in Java warten sondern sich stattdessen Scala ansehen.

Eine Vermischung der verschiedenen Sprachen, die auf der Java VM laufen, und die Kombination mit Java ist ja problemlos möglich. Etwas, das in der .NET-Umgebung von Anfang an Teil des Designs war (nämlich eine VM für verschiedene Sprachen) hat damit auch Einzug in de Java-Welt gehalten. Als Entwickler habe ich damit auch im Java-Umfeld mehr Möglichkeiten und kann für jede Aufgabe die passende Sprache auswählen. Und ich muss nicht auf die nächste Java-Version warten …

Nachtrag: InfoQ hat ein Interview mit Josh Bloch zum selben Thema veröffentlicht: “A Discussion with Josh Bloch on the Future of Java”

comments powered by Disqus