"Oracle Code One"-Tagebuch – Tag 1: "Alles bleibt anders"

Neuigkeiten von der Insel  –  2 Kommentare

Liebes Tagebuch,

ich kann mich noch wie heute daran erinnern, als mein Lieblingsschokoriegel Raider in Twix umbenannt wurde. Groß war die Aufregung. Würde der Riegel mir nach wie vor so gut schmecken? Würde die Qualität und der Preis stabil bleiben? Und müsste ich nicht eigentlich aus Solidarität zu dem Gewohnten zukünftig mein Leben lang auf seinen Genuss verzichten? Solche und ähnliche Fragen gingen mir damals durch den zugegebenermaßen noch recht jungen Kopf.

Ein ähnliches Gefühl überkam mich nun wieder, als ich heute die Hallen der Oracle-Code-One-Konferenz betrat, welche als "kleine" Schwesterkonferenz der Oracle OpenWorld aktuell in San Francisco stattfindet. Als treuer Fan der JavaOne-Konferenz habe ich die Ankündigung, die Konferenz solle eine neue Ausrichtung und damit – konsequenterweise – auch einen neuen Namen bekommen, natürlich als Eklat empfunden. Hatte Oracle denn nicht verstanden, dass sich mit der JavaOne in den letzten 20 Jahren die Konferenz für die Java-Community entwickelt hat? Wollte man dieses jährliche Familientreffen wirklich aus Marketinggründen opfern?

Aus Raider wird Twix, sonst ändert sich (fast) nix

Nach dem ersten Konferenztag bin ich deutlich entspannter. Oracle hat mit der Neuausrichtung eine Evolution und keine Revolution gestartet. Und das ist meiner Ansicht nach auch gut so. Einmal abgesehen von der rein visuellen Umgestaltung, von Java-Blau auf Oracle-Rot, gibt es nach wie vor unzählige Sessions, Workshops und Hand-On Labs zu den unterschiedlichsten Java-Themenfeldern. Zusätzlich wurde das Angebot und somit auch die Auswahl für die Teilnehmer um eine Reihe neuer Themen erweitert: "Modern Web", "Containers, Serverless & Cloud", "Big Data & Data Science" und "Emerging Technologies", um nur einige zu nennen. Eigentlich konnte man all diese Themen auch in den letzten Jahren schon verstreut, in Form einzelner Sessions, in der Konferenzagenda finden. Sie waren bisher nur nicht so präsent vertreten und explizit ausgewiesen wie in diesem Jahr. ­­­­

Ich habe mich im Laufe der letzten Wochen bewusst mit etlichen Java-Entwicklern über die Neuausrichtung und die Umbenennung der Konferenz unterhalten. Es ist schon interessant zu sehen, dass insbesondere diejenigen, die vor 20 Jahren, mit dem Aufkommen des Java-Hypes, den etablierten Cobol-, Delphi- und C-Communitys mangelnde mentale Flexibilität vorgeworfen haben, heute scheinbar genauso unflexibel reagieren. Die heutige IT-Landschaft und die darin stattfinden Projekte sind deutlich heterogener als noch vor Jahren. Die neu aufgenommenen Themen der Code One sind alles Themen, mit denen heutzutage nahezu jeder Entwickler in seiner täglichen Arbeit in Berührung kommt beziehungsweise kommen sollte. Und wenn nicht, wäre es eventuell an der Zeit zu hinterfragen, ob das eigene Jobumfeld noch zeitgemäß und somit zukunftssicher ist.

Die von einigen geäußerte Befürchtung, die Umbenennung der JavaOne hin zu Oracle Code One wäre als Signal zu verstehen, dass Oracle sich langsam, aber sicher aus der Java-Welt zurückziehe, teile ich nicht. Zum einen verdient Oracle nach wie vor, direkt oder indirekt, sehr gutes Geld mit Java. Zum anderen hängt der Erfolg zu vieler eigener Produkte an Java, als dass man dieses Feld anderen überlassen wollte.

Natürlich ist auch Oracle die Brisanz ihrer eigenen Positionierung zum Thema "The Future of Java" klar. Daher ist es auch nicht verwunderlich, dass die traditionelle Java-Keynote genau unter diesem Motto stand.

Keynote: The Future of Java is now

George Saab (Vice President of Development, Oracle) und Mark Reinhold (Chief Architect of the Java Platform Group, Oracle) betonten im Rahmen der Keynote mehrfach die große Bedeutung der Programmiersprache Java für die Entwicklergemeinde und ihr eigenes Unternehmen und versicherten, dass Oracle sich auch weiterhin stark für die Weiterentwicklung von Java einsetzen werde. Beide wiesen dabei noch einmal auf das von Oracle im letzten Jahr gegeben Versprechen – "deliver enhancements and innovations more rapidly" – hin und natürlich auch auf die Tatsache, dass Oracle dieses Versprechen durch

auf jeden Fall erfüllt hat.

Natürlich war auf das neu angedachte Supportmodell, welches in den letzten Wochen in der Community für einige Aufregung gesorgt hat, ein Thema. Das neue Modell zwingt Nutzer des Oracle JDKs, die keinen Support zahlen wollen, alle sechs Monate zu einem Versionswechsel, da nur die jeweils aktuelle Version frei zur Verfügung steht. Möchte man länger an einer Version festhalten, wird automatisch ein entsprechender Supportvertrag fällig. heise Developer berichtete bereits ausführlich dazu.

Fairerhalber sollte an dieser Stelle erwähnt werden, dass es natürlich jedem Entwickler freisteht, statt des Oracle JDK eine der möglichen Alternativen zu wählen. So hat Oracle laut Reinhold bisher immer alle Features aus dem jeweils aktuellen JDK frühzeitig der Open-Source-Gemeinschaft zur Verfügung gestellt, sodass darauf aufsetzenden Implementierungen, wie OpenJDK, nahezu zeitgleich am Markt erscheinen konnten. "Oracle Java == OpenJDK" oder anders formuliert "Java is still free", so die plakative Formel Reinholds.

Java.next

Wie geht es nun aber konkret weiter mit dem JDK? Was können wir in den kommenden Versionen an neuen Features erwarten? Auch diese Frage wurde im Rahmen der Keynote von Mark Reinholds beantwortet, indem er unter anderem einige Demos aus den folgenden Projekten präsentierte:

Mit dem Projekt Amber wird das Ziel verfolgt, regelmäßig neue produktivitätssteigernde Java-Features einzuführen. Bisher geliefert wurden "Local-Variable Type Inference" (JEP 268) in JDK 10 und "Local-Variable Syntax for Lambda Parameters" (JEP 323) in JDK 11. In der Entwicklung und somit vorgesehen für das kommende JDK 12 befinden sich "Lambda Leftovers" (JEP 302) und "Pattern Matching" (JEP 305). Zusätzlich soll es in JDK 12 Previews von "Switch Expressions" (JEP 325) und "Raw String Literals" (JEP 326) geben.

Mit dem Projekt Loom soll das aktuelle Thread-Modell um Fibers (User-Mode Threads) erweitert werden. "We want to make concurrency simple(r) again!", so die Kernaussage des Projekts. Während das aktuelle Thread-Modell auf OS Kernel-Threads aufsetzt und somit ein Thread-Wechsel und der zugehörige Context-Switch recht teuer ist, werden Fibers durch die Java VM verwaltet und kommen deutlich "leichtgewichtiger" daher. Projekt Loom ist somit eine direkte Antwort auf heutige Anforderungen an Java-Anwendungen, in denen Concurrency eine zunehmend wichtigere Rolle spielt (siehe auch "Project Loom:Fibers and Continuations for the Java Virtial Machine").

Projekt Panama soll die Verbindung zwischen der Java VM und sprachfremden APIs verbessern und wendet sich somit vor allem an C-Programmierer beziehungsweise die Anbindung ihres Codes. Die Liste der angedachten Features ist relativ umfangreich und reicht von nativen C- bzw. C++-Funktionsaufrufen aus der JVM heraus, über APIs zur Verwaltung nativer Bibliotheken, bis hin zu native-orientierter JIT-Optimierung.

Bis morgen …

Liebes Tagebuch, mein Fazit für den ersten Tag der JavaOne, ich meine natürlich Oracle Code One, ist durchweg positiv. Es gibt nach wie vor mehr als genug Sessions rund um das Thema Java. Meine Befürchtung, meine Lieblingssprache könnte langsam, aber sicher ins Hintertreffen geraten, ist völlig ungerechtfertigt.

Aber auch beziehungsweise insbesondere die alternativen Tracks sind wirklich interessant. Sie ermöglichen einen wichtigen Blick über den Java-Tellerrand hinaus und geben einem die Chance, sich mit vielen der aktuellen Trendthemen, wie Modern Web, Cloud, Serverless oder Data Analytics, näher auseinanderzusetzen. Mehr dazu aber in meinem nächsten Tagebucheintrag. Morgen ist ja auch noch ein Tag.