Java 8: Das Ende von 10 Jahren Stillstand

von Hubert Schmid vom 2013-04-28

Es hat sich bereits abgezeichnet, doch jetzt ist es offiziell: Das Release von Java 8 wird nochmals verschoben. Statt in diesem September wird es nun frühestens im März 2014 erscheinen. Entwickler müssen also weiterhin auf die sehnsüchtig erwarteten Erweiterungen warten, die bereits für das ebenfalls mehrfach verschobene Java 7 versprochen waren. Dazu gehören insbesondere Lambda Expressions und Default Methods.

Zur Erinnerung: Die letzten nennenswerten Erweiterungen der Sprache sind bereits einige Zeit her. Generics, Annotations, Autoboxing, Enumerations und Varargs wurden allesamt 2004 mit Java 5 eingeführt. Mit Java 6 und Java 7 hat sich kaum etwas getan. Die Sprache hat sich also aus Sicht der Entwickler ungefähr zehn Jahre nicht weiterentwickelt.

Sind zehn Jahre viel für eine Programmiersprache? Wie haben sich andere Programmiersprachen im Vergleich dazu in den letzten 10 Jahren entwickelt?

Am Besten lässt sich die Entwicklung von Java allerdings mit der Entwicklung von C# vergleichen. Denn beide Sprachen sind mit sehr ähnlichen Konzepten und fast identischer Syntax gestartet, und C# hinkte Java Ende 2004 noch ein wenig hinterher. Doch seitdem hat sich in C# im Gegensatz zu Java viel getan:

Viele Java-Programmierer kennen diese oder vergleichbare Features aus anderen JVM-basierten Programmiersprachen, die in den letzten Jahren wie Pilze aus dem Boden sprießen. Ihre bekanntesten Vertreter sind Scala, Clojure und Kotlin, und ihr Wachstum wird durch Javas Trägheit begünstigt. Eine vergleichbare Entwicklung ist im C#-Umfeld dagegen nicht zu erkennen.

Hier liegt aus meiner Sicht das große Problem: Wenn Oracle es nicht schafft, wieder mehr Geschwindigkeit in die Weiterentwicklung von Java zu bringen, dann werden die Entwickler auf Dauer noch stärker abwandern – hauptsächlich zu anderen JVM-basierten Programmiersprachen. Darunter wird in erster Linie Java selbst leiden, und als Folge daraus auch die JVM. Doch auch die Heterogenität der Programmiersprachenlandschaft sollte man nicht unterschätzen. Vor 20 Jahren war man schon einmal an diesem Punkt, und CORBA erinnert uns als Mahnmal an den gescheiterten Versuch, mehrere Programmiersprachen innerhalb von Systemen eng miteinander zu verzahnen.