

Java 8 und der Weg zum "Internet der Dinge"
1. Oktober 2013 um 13:39Was nimmt ein Entwickler von der JavaOne 2013 mit? Ein Bericht von Gert Brettlecker.
Was nimmt ein Entwickler von der JavaOne 2013 mit? Ein Bericht von Gert Brettlecker.
Die diesjährige JavaOne-Konferenz in San Francisco stand ganz im Zeichen des "Internet der Dinge". Sowohl die strategische Keynote am Beginn der Konferenz als auch die Community-Keynote zum Abschluss zeigten, dass sich zumindest Oracle und zahlreiche Partner ein "Internet der Dinge" ohne Java als treibenden Motor nicht vorstellen können. Wie man bereits bei der letzten JavaOne beobachten konnte, setzt Oracle bei der Entwicklung von Java auf Qualität und Kontinuität statt auf Schnellschüsse. Die Früchte dieser Strategie zeigen sich in der kommenden Java 8-Version, die einen Meilenstein in der Entwicklung von Java darstellen wird. Mark Reinhold, der Chefarchitekt von Java, versicherte in seiner Keynote, dass trotz aller Erweiterungen das "Gefühl von Java" erhalten bleibe. Rechtzeitig zur JavaOne wurden der Community Vorabversionen von Java 8 zur Evaluierung bereitgestellt.
Raspberry Pi und "Do It Yourself"
Oracle hat in den letzten Jahren erkannt, dass nur eine lebendige Community Java weiterbringen kann. Wenn man also den eigenen Ideen Impulse geben will, muss man die Community davon überzeugen. Im Bereich "Embedded Java" ist dies Oracle an der JavaOne mit zwei Technologiedemonstrationen überzeugend gelungen. Beide greifen den aktuellen Trend "Do It Yourself" (DIY) auf. DIY stellt eine Analogie zu Open-Source für den Hardware-Bereich dar. Moderne Technik erlaubt es, eigene Hardware-Projekte auch als Laie immer einfacher umzusetzen. So haben zwei Mitarbeiter des Java-Teams von Oracle, die von der Ausbildung her eigentlich Softwareentwickler sind, selbst ein Java-Tablet (Unteres Foto) und einen Schachroboter konstruiert. Beide verwendeten den beliebten Raspberry Pi als Hardware-Plattform und erweitern über die zahlreichen offenen Schnittstellen dessen Funktion. Die anderen notwendigen Teile werden fertig eingekauft – oder falls nötig mit einem 3D-Drucker selbst hergestellt. Die Präsentation dieser Prototypen in der Keynote erzeugte sehr geschickt einen Geek-Spirit, der einen an die Garagenexperimente eines Steve Jobs erinnerte. Am Ende ist die Nachricht klar: "Embedded Java" ist cool!
Vereinheitlichung von Java
Java hat sich im Laufe der Zeit leider in verschiedene Varianten auseinanderentwickelt, was der Ursprungsidee von "Write Once Run Anywhere" geschadet hat. Neben dem klassischen Desktop Java (Standard Edition SE) haben sich die sehr erfolgreiche Enterprise Edition (EE) und im mobile Bereich die abgespeckte Micro Edition (ME) etabliert. Doch die rasant wachsende Popularität von iPhone- und Android-Smartphones haben Java ME auf Mobiltelefonen überholt. Oracle hat aber erkannt, dass es im Embedded-Bereich durchaus interessante Anwendungen für Java gibt, und bietet dafür mit Java SE Embedded und Java ME Embedded zwei Varianten an.
Mit Java 8 geschieht nun ein erster Schritt in Richtung Vereinheitlichung all dieser Varianten. So erhält die parallel erscheinende Version 8 von Java ME Embedded zahlreiche Spracheigenschaften von Java SE 8 zurück. Ein ME-Entwickler kann nun zum Beispiel die von SE bekannten Collections und Generics in seinen Programmen verwenden. Dies erleichtert das Schreiben von plattformübergreifenden Applikationen und Bibliotheken erheblich. James Gosling, der Java ursprünglich für den Embedded-Einsatz entwickelte, scherzte in seiner Rede dieses Jahr von Java EE als "Unfall" auf dem Weg zum Internet der Dinge.
Neue Waffen für die Entwickler
Die Lambda-Operationen in Java 8 bieten den Entwicklern ein mächtiges neues Werkzeug. Zahlreiche Sessions drehten sich um deren sinnvolle Anwendung und waren sehr gut besucht. Koordinierte Änderungen an Laufzeitumgebung, Sprachsyntax und Basisbibliotheken von Java waren notwendig um Lambda-Operationen zu realisieren. Entsprechend war die Implementierung von Lambdas eine der aufwendigsten Änderungen in der Geschichte von Java und musste auf verschiedenste Aspekte Rücksicht nehmen. Insbesondere an Verbesserungen der Ausführungsgeschwindigkeit wird bis zum finalen Release von Java 8, der im März 2014 geplant ist, noch gearbeitet.
Compact Profiles sind eine weitere Neuerung von Java 8. Sie sind als Zwischenlösung bis zu einem sauberen Modulsystem in Java 9 gedacht und ermöglichen es, den Umfang der Java-Basisbibliotheken einzuschränken und damit Embedded-Anwendungen mit reduziertem Speicherbedarf zu realisieren. Mit dem Modulsystem in Java 9 wird die Laufzeitumgebung noch besser anpassbar. Dadurch kann weiter Speicher gespart werden. Das Modulsystem wird auch die Sicherheit von Java-Anwendungen deutlich erhöhen.
Kreative Leckerbissen
Es gibt Vorträge an Konferenzen, die das gewisse Etwas an Kreativität enthalten und darum hier explizite Erwähnung verdienen:
Der Vortrag mit dem interessanten Titel "The Chuck Norris Experiment" hat mich gepackt. Der Vortrag stellt das Projekt "Bck2Brwsr" vor. Die Idee "Java ohne Plug-in im Browser" klingt so ambitioniert, als könnte sie nur ein Kampfkünstler wie Chuck Norris in Angriff nehmen. Realisiert wurde sie aber von Jaroslav Tulach – keinem Unbekannten in der Community, sondern einem der Mitbegründer von NetBeans. Er implementierte eine fast vollständige Java VM in Javascript. Die Demos in der humorvollen Session zeigten, dass damit durchaus sinnvolle Anwendungen möglich sind.
Einen zweiten Vortrag zum Thema RoboVM fand ich ebenfalls sehr spannend. RoboVM ermöglicht es, native Anwendungen für iPad und iPhone in Java zu schreiben. Allerdings wird dabei keine Java VM mit der Anwendung verpackt, wie es zum Beispiel die offizielle Oracle-Lösung "Mobile ADF" macht. Java VMs sind zwar inzwischen auf dem iPhone erlaubt, allerdings ist die Ausführungsgeschwindigkeit stark gebremst, da Apple es nicht zulässt, zur Laufzeit eines Programmes neuen Maschinencode zu erzeugen. Diese Funktion ist für eine schnelle Java VM als sogenanntes "Just in Time Compiling" (JIT) unbedingt notwendig. RoboVM verfolgt eine kreative Alternative und kompiliert Java schon zur Entwicklung, also "Ahead of Time" (AOT). Damit liegt der gesamte erzeugte Maschinencode vor und kann wie andere Apps im App-Store eingereicht werden, ohne die Restriktionen von Apple zu verletzen. Einige Demos zeigten, dass dieser Ansatz tatsächlich in der Praxis funktioniert. Oracle hat künftig AOT-Ansätze auch für Embedded-Varianten der Java VM geplant.
Zukunft: Küss den Frosch!
Vollgetankt mit frischen Ideen rund um Java und das "Internet der Dinge", sehe ich die geplante gemeinsame Zukunft der beiden sehr rosig. Aus meinen praktischen Erfahrungen in der Embedded-Entwicklung in Java und in C/C++ geht für mich seit Jahren Java als eindeutigen Gewinner aus diesem Rennen hervor. Die JavaOne 2013 zeigte eine schlüssige Fortsetzung des Wegs, der an der letztjährigen JavaOne präsentiert wurde. Geplante Erweiterungen in Java 9 wie das Modulsystem oder ein verbessertes Java Native Interface (JNI) werden der Embedded-Entwicklung noch mehr Auftrieb geben.
Geoff Lees von Freescale, einem führenden Microcontroller-Hersteller, hielt am Schluss der JavaOne eine klare und schlüssige Keynote zum Thema "How Java Will Unify the Internet of Things". Die Präsentation war eine Art Liebeserklärung des Herstellers der kleinen Chips an Java. Die Java-Community sollte diesen Antrag annehmen und die kleinen Chips von ihrem unvernetzten, unsicheren und unorganisierten Schattendasein erlösen. In diesem Sinne: Java, küss den Frosch!
(Gert Brettlecker)
(Gert Brettlecker ist promovierter Informatiker und Technologieverantwortlicher der Abteilung Industry and Mobile Solutions beim Zürcher Softwarehersteller Ergon Informatik AG. Ergon ist Technologiepartner von inside-it.ch und inside-channels.ch.)
Loading
Wie Swiss den Flugbetrieb mit KI optimiert
Die Fluggesellschaft setzt bei der Planung ihres Betriebs und für die Reaktion auf kurzfristige Störungen auf die Hilfe von Künstlicher Intelligenz.
"Hey Google, verzichte auf meine Inhalte für KI-Trainings"
Zeitungsverlage können selbst entscheiden, ob sie ihre Inhalte für die Verbesserung der Google-KI Bard zur Verfügung stellen wollen oder nicht.
Unispital Zürich ersetzt On-Prem-Skype durch Microsoft 365
Das USZ will in der Kommunikation konsequent auf Microsofts Cloud setzen. Dies zeigt eine interne Nachricht an die Mitarbeitenden.
Post bietet digitalen Briefeinwurf für KMU
Zusammen mit Klara hat die Schweizer Post einen virtuellen Briefkasten entwickelt. Der Konzern adressiert damit KMU, hält sich mit konkreten Zielsetzungen aber bedeckt.