Java ist cool und es ist cool, Teil davon zu sein

San Francisco, 07.10.2014 – Álvaro Catalá

insightsPageview({ aktuelles_topic: 'Java ist cool und es ist cool, Teil davon zu sein', aktuelles_category: 'medienberichte,publikationen,softwareentwicklung-nicht-sichtbar,fachartikel', aktuelles_date: '07.10.2014' })

Fachartikel für inside-it.ch vom 7. Oktober 2014

Letzte Woche ging die bisher grösste JavaOne-Konferenz über die Bühne. Oracle bot eine Fülle an Informationen. Ein Vorort-Bericht von Álvaro Catalá.

Die diesjährige JavaOne-Konferenz in San Francisco ist laut Angaben von Oracle die bisher grösste, die mit den meisten Sessions und die mit den meisten Besuchern gewesen. Das hat man als Besucher auch gespürt, denn die Räumlichkeiten waren immens, die Zeitpläne scheinbar unmöglich zu vereinbaren und die Menschenmassen überwältigend. Es war in jeder Hinsicht eine XXL-Veranstaltung. Ist man mit diesen Rahmenbedingungen erst einmal zurechtgekommen, so hat man dann auch jede Menge wertvolle und sehr interessante Informationen zu Oracles Schwerpunktthemen und weiteren Zukunftsplänen bekommen.

Java 8, Internet der Dinge, Automotive

In der diesjährigen JavaOne haben Themen wie Java 8 Release, Internet of Things (IoT) und Big Data weiter an Bedeutung gewonnen. So haben die Lambdas und Streams mit dem Java SE 8 Release (März 2014) den Weg in die weite Welt geschafft. Dieser Schritt wird von Oracle selber als "the biggest upgrade to the language model ever" bezeichnet. Sie fügen dem Verhalten im Code eine neue Abstraktionsmöglichkeit hinzu, so wie es die Einführung von Generics in Java 7 für die Datenstrukturen getan hat. Damit hat Java mächtige Mechanismen der funktionalen Programmierung gewonnen, die auch eine Erhöhung der Lesbarkeit von Code und das Potential zur automatischen, parallelen Ausführung (Threads) mit sich bringen. Oracle hat hierbei die Grundprinzipien von Java wieder gut eingehalten, da sich die Qualität und Effizienz vom Code weiterhin verbessern konnten, ohne dafür Rückwärtskompatibilität oder Portabilität einbüssen zu müssen.

Der meist gehörte Begriff auf der diesjährigen JavaOne ist wohl das Internet der Dinge (Internet of Things, IoT). Dass es kommt und dass es grosses Potenzial hat, stellt niemand mehr in Frage. Vieles bewegt sich schliesslich dahin. Java SE Embedded 8 und Java ME Embedded 8 ermöglichen es, kleine und kleinste Geräte mit jeweils unter 11MB beziehungsweise unter 128KB RAM Bedarf mit Java zu betreiben. Mit dem zur JavaOne veröffentlichten Java ME Embedded 8.1 werden nun auch die populären, kleinen ARM Cortex-M Prozessoren unterstützt. Auch aus der OpenSource-Community kommen immer mehr Frameworks (wie Kura, Mosquitto, Paho), die auf die einfache Entwicklung und den Betrieb von embedded Systemen abzielen. In all diesen Frameworks tut sich sehr viel, insbesondere im Bereich Harmonisierung von IoT. Während Java SE Embedded mit den Möglichkeiten von unterschiedlich kompakten Profilen je nach Hardware-Einschränkungen versehen ist, behält es die volle Compliance mit Java SE. Dagegen hat Java ME weiterhin die verwalteten Applikationen (Midlets) und deutlich kleinere Footprints. In Augen des Software-Entwicklers fällt auf, dass zwei Java Frameworks den Label "Embedded" tragen. Dies wird historisch und aus Rückwärtskompatibilitätsgründen erklärt. Es bleibt jedoch zu erwarten, dass diese Doppelung bald weiter harmonisiert und vereint wird.

Kommunikation und Security haben an der JavaOne auch eine wichtige Rolle gespielt. Auf allen Ebenen (von IoT bis zu Java EE, und immer über Cloud-Anbindung) wird die Kommunikation zwischen Geräten in Java mit immer mehr Security-Updates flankiert, so dass auch die Cloud-Anbindung und das IoT sicher und einfach möglich sind. Es sind hierzu eine Vielzahl an Beispielen gezeigt worden, wobei ein wiederkehrendes Thema Automotive war. Hier wird nicht nur die Kommunikation zwischen Mikrocontrollern, Sensoren und Aktuatoren im Fahrzeug, sondern auch die Kommunikation zwischen Fahrzeugen angesprochen – dies alles ist mit Java möglich. Als sympathische Demo wurde ein Fahrsimulator zur interstellaren Geschwindigkeit (à la Star Wars) beschleunigt.

Enterprise und Datenbanken

Auch die GUI-Programmierung von kleinen Geräten (häufig mit Touch-Displays) mit Java FX Bibliothek bietet immer mehr Möglichkeiten, wie CSS und HTML5-Unterstützung. Das Prinzip der "write once, run everywhere" kann den Entwicklern von IoT und mobilen Geräten auch mit Java SE Embedded sehr viel Arbeit sparen, wie es vielfach an der JavaOne gezeigt wurde. Als interessante Demo wurde ein Pong-Spiel gezeigt, das mit Java FX und JavaScript (Projekt Nashorn) auf iOS (Project RoboVM) und Android-Geräten (Project LodgON) laufen konnte.

Im Enterprise-Bereich ist das Release 8 von Java EE erst fürs Jahr 2016 geplant. Darin werden die Java-8-Neuheiten (Lambdas, Streams usw.) für Java EE Applikationen zur Verfügung gestellt. Ausserdem wird der Fokus mehr auf die gesamte Kette gelegt, von Backend bis zum Frontend. Die sichere Kommunikation zwischen den beiden gewinnt an Wichtigkeit. JSON (JavaScript Object Notation) wird als De-facto-Standard hierfür eingesetzt. Und im Frontend stehen die mobilen Endgeräte immer mehr im Fokus.

Bei einem Oracle-Besuch können jede Menge Datenbank-Sessions nicht fehlen, wo über die neuesten Datenbank-Produkte und Technologien geredet wird. Beim Release von Oracle 12c (2013) standen zwei Punkte im Fokus: Multi-Tenant-Datenbanken und InMemory-Datenbanken. Abgesehen vom Marketing ist auch viel über NoSQL-Datenbanken mit ihrem sehr starken Potenzial in der Cloud und in Internet-Anwendungen gesprochen worden. Zu ihrem sinnvollen Einsatz müssen jedoch einige Randbedingungen im Vorfeld klar sein, um die richtige Datenbanktechnologie oder eine Kombination davon zu wählen.

Ein Blick auf Java 9

Java 8 wurde ausgegeben - und schon wird an Java 9 gearbeitet. Ein Blick in die Glaskugel hat in der Keynote zum Schluss gezeigt, dass die neue Java Virtual Machine (JVM) stark modularisiert wird, womit die Flexibilität zum Ausführen von unterschiedlichen Applikationstypen optimiert wird. Weiterhin sollen Security-Boundaries um die Komponenten hinzukommen. Eine weitere Optimierung soll die Sprache mit den ValueTypes erhalten (inspiriert durch die Projekte Valhalla und Panama), welche ein Hybrid zwischen Primitivtypen (int, float etc.) und Klassen (Objekten) sein werden. Sie kombinieren die Performance-Vorteile von Primitivtypen mit den Vorteilen von Vererbung.

Als Fazit hat mich die diesjährige JavaOne mit einer hohen Vielzahl an spannenden, hochqualitativen Sessions, lehrreichen Hands-on-Labs und zukunftsweisenden Keynotes überzeugt. Insgesamt sind sehr erwähnenswert die Offenheit und Transparenz, mit der Oracle die ganze Java-Welt voranbringt. Es handelt sich um die grösste Community der Welt um eine Programmiersprache, und die Beteiligung der einzelnen Entwickler geschieht auf sehr viele und unterschiedliche Weisen, wie JCP (Java Community Processes), JSR (Java Specification Request), JUG (Java User Groups), sowie Arbeitsgruppen, OpenSource-Projekte, Oracle Academy (auch fokussiert auf Kinder!) und vieles mehr. Der Spirit von Teilnahme und Mitverantwortung wird aktiv gefördert und entsprechend gelebt. Java ist cool und es ist cool, Teil davon zu sein. Man kann auf das nächste Jahr gespannt sein. Mit dem 20-Jahr-Jubiläum von Java wird hier bestimmt wieder viel los sein.

Dr. Álvaro Catalá ist Softwareingenieur bei Ergon Informatik in Zürich. Er war an diversen Projekten in der Abteilung Industry and Mobile Solutions beteiligt und arbeitet zurzeit in einem Telco-Projekt im Backend-Team mit Java EE Technologie.