Auftakt der JavaOne 2015: Geburtstagsfeier ohne große Neuigkeiten

Oracle bot während der Eröffnungs-Keynote der weltweit größten Java-Konferenz eine Zusammenfassung dessen, was von Java 9 zu erwarten sein wird und was danach kommen wird.

In Pocket speichern vorlesen Druckansicht 62 Kommentare lesen
JavaOne, der erste Tag
Lesezeit: 5 Min.
Von
  • Arno Puder
Inhaltsverzeichnis

Auf der Konferenz JavaOne 2015 in San Francisco feiert Oracle vom 25. bis zum 29. Oktober das 20-jährige Jubiläum der Programmiersprache Java und dessen Erfinder James Gosling. Große Ankündigungen blieben bei der Eröffnungs-Keynote am gestrigen Sonntag dann auch aus. Dafür wurde auf die bereits bekannten Neuerungen in Java 9 sowie die zukünftigen Java-Änderungen in den Projekten Valhalla und Panama verwiesen.

Oracle, der Statthalter der Sprache ist seit der Übernahme von Sun Microsystems in Jahr 2010 nicht immer taktvoll mit ihr umgegangen. Erst vor kurzem trennte sich der Orcale in einer unglücklichen Aktion von einigen seiner Java-Evangelisten.

Die im Vorfeld der Konferenz nach außen dargestellte Harmonie kann außerdem nicht über die tiefe Spaltung der Java-Szene hinwegtäuschen: Wie auch schon in den vergangenen Jahren fehlt auf der JavaOne mit Google einer der größten Java-Nutzer. Wegen der juristischen Streitigkeiten mit Oracle ist Android auf der Konferenz zum wiederholten Mal kein Thema. Während bereits Pläne für die Zeit nach Java 9 geschmiedet werden, ist bei Android schon seit Jahren die Zeit bei Java 6 stehen geblieben.

Während der Keynote stellte Michael Green, Vice President von Intels Software and Service Group, die verschiedenen Aktivitäten seiner Firma in Sachen Java vor. Als Partner der ersten Stunde sei Intel auch nach der Übernahme von Oracle Java treu geblieben. Seit vergangenem Jahr unterstützt Intel offiziell das OpenJDK, die Open-Source-Version von Java. Laut Green ist die "Revolution" beim Internet der Dinge (IoT) die größte Herausforderung für Java.

Vergangenes Jahr veröffentlichte Intel das IoT-Developer-Kit für seine Edison-Plattform, die auch für Arduino die Entwicklung von IoT-Anwendungen vereinfachen soll. Green gab in San Francisco nun auch bekannt, dass das IoT-Developer-Kit jetzt auch das OpenJDK unterstütze. Um gerade für kleine Embedded-Geräte die beschränkten Ressourcen zu nutzen, steuerte Intel beispielsweise optimierte Implementierungen zu mathematischen Bibliotheken, Arrays und Strings sowie Kompressionen bei.

Mark Reinhold, Chief Architect der Java Platform, ging während der Keynote auf aktuelle und zukünftige Neuerungen ein. Das leitende Prinzip jeder Innovation des Java-Ökosystems sind ihm zufolge Einfachheit und Lesbarkeit des Quelltextes. Während die meisten Änderungen über die Jahre hinweg eher kosmetischer Natur waren, habe man sich auch nicht vor größeren Änderungen wie Generics in Java 5 oder Lambda-Ausdrücke in Java 8 gescheut.

In Java 9 widmen sich die Java-Entwickler nun zwei Herausforderungen: dem Classpath-Problem und dem monolitischen JDK (Java Development Kit). Ersteres, unter Entwicklern auch als Jar-Hölle bezeichnet, macht es schwierig, Abhängigkeiten komplexer Systeme anzugeben. Das trifft insbesondere zu, wenn eine Anwendung zwei verschiedene Versionen der gleichen Bibliothek benötigt. Während das Build-System Maven dieses Problem zur Compile-Zeit löst, bietet Java keinen vergleichbaren Laufzeit-Mechanismus an.

Das andere Problem betrifft die monolithische Struktur des JDK selbst. Es ist wegen der komplexen Abhängigkeiten kaum möglich, lediglich einen Teil des JDK zu benutzen. Java 9 wird beide Probleme über ein neues Modul-Konzept lösen. Als Basis dient das Jigsaw-Projekt, das bereits seit 2008 existiert. Ein Modul ist ein Container von Java-Packages. Eine spezielle Datei module-info.java definiert alle Abhängigkeiten des Moduls sowie dessen offizielle API. Die kompilierte Version dieser Datei wird dann einfach mit in die Jar-Datei (Java Archive) gepackt, um daraus ein Modul zu machen. Parallel dazu restrukturiert Oracle das JDK, um mithilfe dieses Konzepts eine bessere Modularisierung zu erreichen.

Auch jenseits von Java 9 existieren jedoch schon seit geraumer Zeit konkrete Pläne, was zukünftige Versionen von Java enthalten werden. Insbesondere sind hier die von Brian Goetz (Language Architect for Java) vorgestellten Projekte Valhalla und Panama zu nennen, an denen Oracle bereits seit anderthalb Jahren arbeitet. Valhalla führt analog zu den bereits aus .NET bekannten Value Types spezialisierte Generics ein. Ein Value Type ähnelt einem struct-Datentyp der Programmiersprache C. Der Vorteil gegenüber einem Java-Objekt ist, dass sich ein Value Type im Speicher einfacher verwalten lässt, was sich gerade beim Garbage Collection bezahlt macht. Spezialisierte Generics erlauben dann echte Arrays von Value Types, die sich wesentlich effizienter verwalten lassen als die normalen polymorphen Datenstrukturen.

Projekt Panama hingegen wird über das Foreign Function Interface eine verbesserte Anbindung an nativen Code anbieten. Bisher liegt es in der Verantwortung des Programmierers, die im JNI (Java Native Interface) definierten Konventionen einzuhalten. Project Panama wird ein Tool namens jextract anbieten, das aus C/C++-Header-Dateien automatisch passende Java-Interfaces generiert. Die Vorgehensweise ist ähnlich dem bekannter SWIG-Werkzeuge (Simplified Wrapper and Interface Generator).

Siehe dazu auf heise Developer:

(ane)