JavaOne 2012: Eine glanzvolle Perspektive für Java

Veranstaltungsberichte  –  9 Kommentare

Anfang Oktober fand die JavaOne 2012 in San Francisco statt – die immer noch wichtigste und größte Java-Konferenz des Jahres. Mehrere Tausend Java-Enthusiasten aus der ganzen Welt trafen sich, um neue Techniken zu sichten sowie mit anderen Experten und Produktherstellern das Gespräch zur gegenwärtigen und zukünftigen Java-Entwicklung zu suchen.

Das Motto der Konferenz war "Make the Future Java", und Oracle verdeutlichte, dass es dieses Credo ernstnimmt und keinen Alleingang bei der weiteren Entwicklung von Java versucht. Oracles Chefarchitekt der Java-Plattform-Entwicklung, Mark Reinhold, brachte die Haltung auf den Punkt, als er sagte: "Java is not about Oracle, it is about all of you!" Die Einbeziehung der Community wurde auch dadurch offensichtlich, dass etwa 60 Prozent des Konferenzinhalts von ihr stammte.

Ende 2013 soll Java 8 erscheinen. Java-Entwickler können sich auf einige neue APIs, etwa Date and Time, und Sprachfunktionen wie die lange herbeigesehnten Closures freuen. Zudem steht mit Projekt Nashorn eine neue JavaScript-Implementierung für die JVM (Java Virtual Machine) zur Verfügung stehen, die Teil des JDK (Java Development Kit) sein wird. Mitwirkende an Nashorn sind bisher Oracle, IBM und Twitter. Einziger Wermutstropfen von Java 8 ist, dass es das Modulsystem Jigsaw nicht in diese Version schafft und erst in Java 9 enthalten sein wird.

Geht es nach Oracle, wird Java in Zukunft auch für Embedded-Systeme ein wichtiges Thema sein. Zur JavaOne hat der Konzern Java ME Embedded 3.2 und die zugehörige Java Embedded Suite 7.0 veröffentlicht. Als Einsatzgebiet sind sie für das "Internet der Dinge" gedacht. Als langfristiges Ziel soll Java ME (Micro Edition) ein Subset von Java SE (Standard Edition) werden, allerdings ist das technisch schwer umsetzbar. Da Jigsaw erst mit JDK 9 auf den Markt kommt, gibt es zuerst "nur" eine Aufsplittung von Java auf Profile mit unterschiedlicher MByte-Größe und dementsprechend mehr oder weniger verfügbaren Klassen und Bibliotheken. Für den Embedded-Bereich ist das nichtsdestoweniger ein wichtiger erster Schritt.

Auch der Trend hin zum Einsatz mehrerer Programmiersprachen geht weiter. Die Sprachen und das zugehörige Tooling sind stabiler geworden, und einzelne kommen erfolgreich in zahlreichen
Projekten zum Einsatz. Den meisten Nutzern ist aber mittlerweile bewusst, dass keine der Sprachen eine "eierlegende Wollmilchsau" ist, sondern beispielsweise Clojure, Groovy oder Scala nur an bestimmten Stellen eingesetzt werden sollten, wenn sie wirklich Mehrwert schaffen.

Das einfachere Programmiermodell von Java EE 6 (Enterprise Edition) hat sich durchgesetzt und ist in den Unternehmen angekommen. Heute sind zahlreiche mit der Java EE zertifizierte Application Server verfügbar. Altlasten wie das schwerfällige EJB 2.1 gehören damit endgültig der Vergangenheit an. Besser noch: Java EE 7 steht in den Startlöchern und wird im Frühjahr 2013 erscheinen. Deren Ziele greifen direkt die Trends von Java EE 6 auf: höhere Produktivität, mehr Funktionen und einfachere Benutzbarkeit dank noch mehr "Convention over Configuration". Eine frühe Version der zugehörigen Referenzimplementierung des Anwendungsservers Glassfish 4 steht nun zum Download zur Verfügung.

Java EE 7 wird vier neue Spezifikationen enthalten: Java API for WebSocket, JCache, Batch Applications und die Java API for JSON Processing. Am meisten aber sehnen sich viele Java-Entwickler nach dem neuen Major-Release des Java Message Service (JMS), der seit 2002 nicht mehr erneuert wurde. JMS 2.0 wird einfacher zu benutzen sein und deutlich weniger Boilerplate-Code benötigen. Außerdem unterstützt er das "moderne Ökosystem" von Java, darunter beispielsweise Annotationen und CDI (Context and Dependency Injection). Zwei weitere größere Releases (EL und JAX-RS) sowie zahlreiche kleinere Überarbeitungen (z. B. JPA, EJB, JSF, CDI) runden die neue Version von Java EE ab.

Mit Java EE 7 lassen sich auch Anwendungen für die Cloud entwickeln (siehe z. B. JBoss OpenShift). Allerdings unterstützt erst Java EE 8 Standards für Cloud-Architekturen wie Mandantenfähigkeit, die wiederum im Frühjahr 2015 auf den Markt kommen soll.

Dem Entwickler stehen in Zukunft allein aus dem Hause Oracle drei Alternativen zur Verfügung, um zeitgemäße Client-Anwendungen zu erstellen: Der Java-EE-Standard JavaServer Faces (JSF), das RIA-Framework JavaFX und das neue Projekt Avatar.

Wie 2011 wurde JavaFX auf der JavaOne 2012 stark beworben. Das Framework ist mittlerweile direkt in Java SE enthalten und steht für das Paradigma "Write once, run everywhere". Es unterstützt sowohl den Webbrowser, den Desktop als auch Geräte aus dem Embedded-Bereich. Mittlerweile funktioniert JavaFX selbst unter Mac OS X sowie Linux auf ARM und somit endlich mit allen wichtigen Betriebssystemen. Bis Ende 2012 will Oracle JavaFX außerdem vollständig quelloffen vorgelegt haben. Als Swing-Ersatz könnte JavaFX neben Desktop-Anwendungen insbesondere für Geräte ohne Browser im Embedded-Bereich eingesetzt werden.

Das auf der JavaOne 2011 angekündigte Projekt Avatar steht nun in den Startlöchern. Es ermöglicht, im Gegensatz zu JavaFX, die Realisierung zeitgemäßer Webanwendungen, die kein Browser-Plug-in benötigen. Dank HTML5 lassen sich die Anwendungen außerdem ohne Probleme auf mobilen Endgeräten einsetzen. Der Unterschied zu anderen HTML5-Frameworks soll vor allem in der End-to-End-Entwicklung vom Client (Browser) bis zum Server (Java EE) mit einem einzigen Framework liegen. Technisch beruht die Umsetzung allerdings auf einer deklarativen XML-Sprache, in die wiederum HTML5- und JavaScript-Quellcode zu integrieren ist. Ob die Entwickler im Java-Umfeld Spaß an der deklarativen XML-Sprache haben werden, scheint jedoch fraglich. Bisher hat Oracle noch keine Produktstrategie für Avatar bekannt gegeben, auch gibt es bisher weder eine Webseite noch Download-Möglichkeiten.

Ein weiterer Trend ist die HTML5-Technik WebSockets. Sie eignet sich insbesondere für ein Umfeld, in dem regelmäßig Echzeitdaten auf Endgeräten anzuzeigen und zu aktualisieren sind. WebSockets entstanden, um Workarounds rund um den HTTP-Standard wie Long-Polling oder Comet zu ersetzen.

Auch Big Data ist mittlerweile in der Praxis angekommen. Zu Themen wie Hadoop, NoSQL-Datenbanken oder In-Memory-Verarbeitung werden keine Grundlagenkurse mehr gehalten, stattdessen trifft man auf Erfahrungsberichte und die Diskussion zu Best Practices. Insbesondere Hadoop baut auf einem großen Ökosystem auf (z. B. Pig, Hive, Hbase und Oozie). Auch kommerzielle Anbieter und Tooling sind mittlerweile zahlreich zu finden.

Darüber hinaus haben NoSQL-Datenbanken wie MongoDB nun große Verbreitung. Dank zunehmender Unterstützung durch die Cloud-Anbieter und der kommerziellen Unterstützung lassen sich große Datenmengen mittlerweile relativ einfach speichern und verarbeiten. Zusätzlich werden aus Performancegründen oftmals In-Memory Data Grids wie Apache Hazelcast oder kommerzielle Produkte wie Terracotta oder Oracle Coherence fürs Caching eingesetzt.

Java ist nicht das neue Cobol, wie immer wieder mal zu vernehmen ist. Es wird ständig weiterentwickelt und verbessert – sowohl die Plattform als auch die Sprache. Neue Techniken wie WebSockets und NoSQL-Datenbanken werden integriert, veraltete Spezifikationen ständig erneuert und optimiert. Die Community ist und bleibt riesig. Es ist kein Wunder, dass alle wichtigen Hersteller auf Java setzen und selbst Microsoft mit seiner Cloud-Plattform für deren Unterstützung wirbt. Einer glanzvollen Java-Zukunft steht dadurch nichts im Wege. Allerdings ist auch weiterhin viel Arbeit notwendig, beispielsweise um die Modularisierung in Java SE 9 und PaaS-Konzepte (Platform as a Service) in Java EE 8 zu realisieren. Eines jedoch hat die JavaOne 2012 deutlich gezeigt: Der Trend geht in die richtige Richtung. (ane)

Kai Wähner
ist als IT-Consultant bei der MaibornWolff et al GmbH tätig. Seine Schwerpunkte liegen in den Bereichen Java EE, SOA, Cloud Computing und Enterprise Architecture Management. Außerdem ist er Autor von Fachartikeln und hält Vorträge auf internationalen IT-Konferenzen.