JavaOne: Oracle reaktiviert Javas "write once, run anywhere"-Paradigma

In einer Keynote zu einer Community-getriebenen Plattform Sensationelles zu erwarten, würde den Gedanken des JCP ad absurdum führen. Und trotzdem gab es einiges Interessantes auf der JavaOne zu sehen und zu hören.

In Pocket speichern vorlesen Druckansicht 66 Kommentare lesen
Lesezeit: 6 Min.
Von
  • Lars Röwekamp

In einer Keynote zu einer Community-getriebenen Plattform Sensationelles zu erwarten, würde den Gedanken des Java Community Process (JCP) ad absurdum führen, und trotzdem gab es einiges Interessantes auf der JavaOne zu sehen und zu hören. Geht es nach Oracle beziehungsweise Peter Utzschneider, Vice President des Java-Produkt-Managements, ist das "Internet of Things" die nächste große Sache der IT. Mit einem geschätzten Markt von mehreren 10 Milliarden "non human driven devices" in den kommenden Jahren wird bereits heute der Wunsch nach einer einheitlichen Plattform laut. Das gilt sowohl für die Hersteller von Embedded-Geräten als auch für die Entwicklergemeinde. Was läge also laut Oracle näher, als die Java-Plattform zu verwenden, wäre da nicht eine Menge verbrannter Erde und ein damit einhergehendes Akzeptanzproblem der Community bezüglich des prädestinierten Kandidaten Java ME (Java Micro Edition), dessen zukünftiges Release Java ME 8 nun als Early-Access-Version vorliegt.

Die Lösung soll eine deutlich stärkere Angleichung der verschiedenen Java-Plattformen, insbesondere Java ME und Java SE, bringen, so Nandini Ramani, Vice President Java Platform bei Oracle. Bereits im für nächstes Jahr versprochenen JDK 8 wird es viele Überschneidungen in den APIs und der Sprache an sich geben. JDK 9 und zukünftige Versionen sollen dann noch deutlich weiter gehen. Das Ziel ist eine Aufweichung der aktuellen Plattformgrenzen bei gleichzeitig kompatiblem Code.

Zukünftig sollen weder Spezialwissen bei den Entwicklern noch verschiedene Plattformen als Ablaufumgebungen notwendig sein. Einmal Gelerntes lässt sich auf allen Plattformen anwenden. Zukünftig wird es keinen Java-SE- und Java-ME-Entwickler mehr geben, sondern nur noch den Java-Entwickler. Einmal Geschriebenes soll eins zu eins auf unterschiedlichsten Geräten laufen. Das hört sich doch sehr vertraut an.

Um derzeitigen und zukünftigen Herstellern von Embedded-Geräten die Verwendung von Java einfacher und somit auch schmackhafter zu machen, wurde ein entsprechendes Programm – das Oracle Java Platform Integrator Program – aufgesetzt. Zielgruppe sind Gerätehersteller, die eine angepasste Java-Embedded-Version, inklusive eigener APIs, auf ihre Produkte bringen möchten. Somit überlässt Oracle die Portierung der Java-Plattform den Herstellern und erreicht so eine Skalierung, die aus eigener Kraft nicht möglich wäre.

Java SE 9 wurde, wenn auch nur oberflächlich, angerissen. Die aus dem Java 8 gestrichene Modularität (Project Jigsaw), Java auf der GPU und speichereffiziente Datenstruktuen stehen ebenso auf der Wunschliste, wie auch Multi-Tenancy, Self-Tuning VM, JNI 2.0 (Java Native Interface). Doch bis dahin ist noch ein weiter Weg.

Das Thema Java EE wurde ebenfalls nicht ausgespart. Auch wenn das Motto "Cloud" kurzfristig aus der Spezifikation gestrichen wurde, fänden sich in der im Frühjahr freigegebenen Version 7 nach wie vor einige Ansatzpunkte, die zumindest in Richtung der Wolke zielen, so Cameron Purdy, Vice President, Cloud Application Foundation: Dazu gehören zusätzliche Security-Rollen für die Cloud, JSF-Themes (JavaServer Faces) und Ressourcen zur Unterstützung mandantenspezifischer Look & Feels oder eine Reihe neuer Standard-Ressourcen, die das Deployment auf beliebigen Servern ermöglichen, da keine serverspezifischen Ressource-Konfigurationen mehr notwendig sind, um nur einige zu nennen.

Der Fokus von Java EE 7 liegt allerdings eindeutig auf HTML5, JavaScript-APIs, JSON und WebSockets. Also genau auf den Themen, die eine moderne von einer klassischen Webanwendungen unterscheiden. Passend dazu tauchte während der Keynote das bereits tot geglaubte Projekt Avatar wieder auf. Um es gleich vorwegzunehmen: Dieses Mal scheint es wirklich real zu sein und nicht nur eine Marketingblase wie im letzten Jahr.

Avatar ist ein Web-Framework, das auf einer Thin-Server Architektur (TSA) basiert und die Entwicklung moderner HTML5-Webanwendungen erlaubt. Es unterstützt dazu sowohl sogenannte View- (Client) als auch Service Components (Server). View-Komponenten werden in HTML5 und unter zusätzlicher Verwendung eines umfangreichen Sets von Widgets und Data Binding – und ein klein wenig JavaScript – implementiert. Server-Komponenten dagegen werden vollständig in JavaScript umgesetzt und laufen "on top" auf einem Java-EE-7-Server, der dazu mit einem Avatar Scripting Container (Avatar.js) zu erweitern ist.

Da die View- und Service-Komponenten – anders als bei den meisten anderen gleichartigen Frameworks – nicht eng aneinander gebunden sind, kann der Entwickler frei entscheiden, ob er beide Typen oder nur einen von beiden wählt und die jeweils andere Komponente auf traditionelle Art und Weise implementiert. Um den Einstieg in Avatar zu erleichtern, stellt Oracle neben der Implementierung und Dokumentation etliche Demo-Anwendungen und Tutorials zur Verfügung.

Im Anschluss an die Java-Strategy-Keynote gab Mark Reinhold, Chefarchitekt der Java Platform Group, im Rahmen der Java-Technical-Keynote gemeinsam mit einigen anderen Oracle-Mitarbeitern einen Überblick über den derzeitigen Stand der Dinge in Oracles Java-Universum. Hier durfte auch Java FX nicht fehlen. Jasper Potts, Developer Experience Architect on Client Java, zeigte ein selbstgebasteltes Tablet – DukePad – auf Basis eines Raspberry Pi, auf dem JavaFX 8 läuft. Obwohl die Hardware im Vergleich zu "echten" Tablets extrem langsam ist, lief die Demo-Anwendung flüssig.

Zum Abschluss gab es noch einmal eine wirklich nette Demo ("Der etwas andere Schachcomputer"), die alle gezeigten Techniken in einem Showcase vereinigt: Ein auf einem Java EE-7-Server – Glasfish 4 – laufendes Schachspiel mit JavaFX, HTML5 und Roboter-Client. So macht Java wirklich Spaß. (ane)