Zusammenfassung der Oracle Code One 2019 Entwicklerkonferenz in San Francisco

Die Highlights der Oracle Code One 2019

Wolfgang Weigend

Zum zweiten Mal öffnete die Oracle-Code-One-Konferenz ihre Pforten für Java-Entwickler und auch für Entwickler anderer Programmiersprachen, die aus aller Welt nach San Francisco kamen. Wolfgang Weigend war vor Ort dabei und fasst die Highlights der Konferenz zusammen.

Das war die Oracle Code One 2019

Die Oracle Code One ist die Nachfolgekonferenz der früheren JavaOne-Konferenz. Sie richtet sich auf verschiedene Programmiersprachen, Technologien und Entwickler-Communities aus. Die Oracle Code One fand im renovierten Moscone Center South San Francisco statt, die Keynotes wurden im Moscone Center North abgehalten. Ohne spezielles Motto stellte sie den Entwickler in den Mittelpunkt.

Das Gebäude Moscone South wurde zur zentralen Anlaufstelle für die Teilnehmer der Oracle Code One, mit der Developer-Ausstellung und dem Groundbreakers Hub im Erdgeschoss sowie den beiden oberen Etagen für die Vorträge. Auf eine Sperrung der Howard Street, die die Gebäude Moscone South und Moscone North trennt, konnte aufgrund eines verbesserten unterirdischen Gebäudedurchgangs verzichtet werden.

Die Oracle Code4Kids fand am Sonntag im Moscone South statt. Die Kinder im Alter von 10-16 Jahren konnten sich von 9 bis 14:30 Uhr mit der Java-Programmierung beschäftigten. Insgesamt haben ca. 7500 Teilnehmer die Oracle Code One besucht, was in etwa den Besucherzahlen vom Vorjahr entspricht. Die stetige Anzahl von 12 Millionen Java-Entwicklern, mehr als 350 Java-User-Gruppen, über 260 Java Champions, 1000 Beteiligte bei JCP-Standards, 30 Milliarden aktive JVMs und 20 Milliarden Cloud-Connected-JVMs spiegeln das Interesse an der weltweit verbreitetsten Programmiersprache Java wider.

Das Oracle-Code-One-Konferenzprogramm bot die Themenbereiche Cloud Native, Core Java Platform, Data Science, Datenbank, Entwickler-Community, Developer Tools, DevOps, Emerging-Technologies, Java Ecosystem, Java Server-Side, Web-Technologien und MySQL an.

Java Keynote: The Future of Java is now – JDK 13, Release-Zyklus und Java SE Subscription

Die Java Keynote fand am Montag-Vormittag im Moscone Center North statt. Sie fokusierte sich auf den Entwickler mit den Themen JDK 13, dem neuen Java Release-Zyklus und die Erfahrungen der Java Community mit der Java SE Subscription.

Georges Saab, Oracle VP Development Java Platform, verkündete die Freigabe vom JDK 13 am 17. September 2019 und sprach über die Benutzerfreundlichkeit von Java, die Zuverlässigkeit, Sicherheit und Plattformunabhängigkeit. Er betonte, dass Java als Programmiersprache für die Bereiche Cloud, Big Data, künstliche Intelligenz und DevOps führend sei. Mit zunehmend schnelleren Technologiezyklen begründete Saab die zügige Bereitstellung von neuen Java-Funktionalitäten für Entwickler durch 6-monatige Java-Release-Zyklen. Er gratulierte den beiden JCP Executive-Committee-Mitgliedern Bruno Souza (SouJava) und Gil Tene (Azul Systems) zum 20-jährigen Bestehen des JCP und wies auf dessen Aufgaben hin, Spezifikationen zu steuern, eine strukturierte Basis zu liefern, eine Implementierungsauswahl anzubieten und das Risiko einer Java-Fragmentierung zu minimieren.

Gil Tene sagte, dass er dem 6-monatigen Java-Release-Zyklus zuerst skeptisch gegenüberstand, aber dass es durchaus möglich sei, die JCP-Spezifikationen schneller zu erstellen. Bruno Souza sprach darüber, dass die technische Innovation im OpenJDK stattfinde und das Open Source ein innovativer Weg sei, um zusammenzuarbeiten und Probleme gemeinsam zu lösen. Gleichzeitig müssten langfristige Spezifikationen, Kompatibilität und Stabilität garantiert werden. Mittels Technologie-Compatibility-Kit (TCK) und Referenzimplementierung reife die Spezifikation, meinte Gil Tene.

Er betonte, dass das TCK überprüft, ob der Code überall exakt gleich abläuft, obwohl es Plattform- und Geschwindigkeitsunterschiede der jeweiligen Java-Implemntierungen gibt. Nur dadurch wird die Wahlfreiheit gewährleistet, verschiedene Hersteller-JDKs zu verwenden oder unterschiedliche OpenJDK-Varianten (Oracle, IBM, Red Hat, MicroDoc, Azul, Bellsoft, SAP, Amazon, AdoptOpenJDK) einzusetzen.

Es folgten zwei Videoeinspielungen von Nicolai Parlog (Entwickler) und Rafael Winterhalter (Entwickler Byte Buddy), die beiderseits bekräftigten, jeweils die aktuellen Java-Versionen zu benutzen. Danach befragte Georges Saab die Tool-Vendoren Chris Hanson, Director of Product Management New Relic, Bryant Macy, VP of Software Engineering App Dynamics und Mala Gupta, Developer Advocate JetBrains nach ihren Erfahrungen zum schnelleren Innovationsrhythmus im Java-Ökosystem. Von den Herstellern New Relic und App Dynamics wurde bestätigt, dass man mit dem neuen JDK 13 arbeitet. Mala Gupta bekräftigt, dass IntelliJ IDEA einen 4-monatigen Releasezyklus hat und es problemlos sei, innerhalb der 6-monatigen Java-Release-Kadenz, die neue Funktionalität zu verfolgen und die künftigen Java Features direkt in die IDE einzubauen.

Zum Thema Enterprise-Grade-Support fragte Saab Kenny Kon, Director, Site Reliability Sabre, einen Anbieter für Reiselösungen, nach seinen Erfahrungen mit der Java SE Subscription für Desktops, Server und Cloud-Deployments. Kenny Kon bestätigte, dass das Sabre-System auf den Java-LTS-Versionen laufe und Performance, Stabilität, Sicherheit und Skalierbarkeit oberster Priorität hätten, um einen Produktionsstillstand zu vermeiden.

Der Java-Language-Architekt der Oracle Java Platform Group, Brian Goetz sprach über die Java Feature-Pipeline, die seit dem mit JDK 9 eingeführten 6-monatigen Release-Rhythmus zügiger neue Java-Merkmale hervorbringt. Außerdem beschrieb Goetz einige Merkmale von JDK 10 bis zu JDK 13. Das JDK 13 beinhaltet JEP 350 Dynamic CDS Archives, JEP 351 ZGC Uncommit Unused Memory, JEP 353 Reimplement the Legacy Socket API, JEP 354 Switch Expressions (Preview) und JEP 355 Text Blocks (Preview).

Brian Goetz bat Mikael Vidstedt, Director of Software Engineering Java Virtual Machine, über die JVM Performance und die Faktoren Startup-Zeit, Durchsatz und Antwortzeit zu berichten. Beim Micronaut Framework und dem Application Data Class Sharing halbierte sich die Startup-Zeit jeweils mit den Java-Versionen JDK 11, JDK 13ea und JDK 14ea.

Eine Verbesserung der Startup-Zeit kann auch durch die GraalVM erreicht werden, meinte Mikael Vidstedt. Mit GraalVM Ahead-of-Time-Fähigkeit kompilierte Native Images verfügen über eine optimierte Startup-Zeit, und sie verringern den Memory-Verbrauch von JVM-basierten Applikationen. Beim G1 Garbage-Collector, der im JDK als Standard verwendet wird, sind weitere Performancesteigerungen beim Durchsatz und der Antwortzeit erreicht worden. Beim Zero-Garbage-Collector ZGC wurden die GC-Pausezeiten verringert. Zero ist nicht exakt Null, sondern entspricht beim ZGC einer durchschnittlichen Pausezeit von weniger als 1ms und einer maximalen Pausezeit von weniger als 2ms.

Brian Goetz blickte auf die künftige Java-Feature-Pipeline und sprach über die Inhalte der Projekte Amber (Right-Sizing Language Ceremony), Valhalla (Value Types & Spezialized Generics), Panama (Foreign Function/Data Interface) und Loom (Continuations in der JVM & Fibers im JDK). Er stellte JEP 359 Records als Preview-Feature vor. Records sind eine neue Art der Typdeklaration für die Java-Sprache. Beispielsweise besagen Implementierungen von equals und hashCode, dass zwei Records gleich sind, wenn sie vom gleichen Typ sind und den selben Status enthalten. Mit einem Demo-Beispiel zu Projekt Valhalla wurde eine Mandelbrotberechnung mit Value Types implementiert, die im Gegensatz zur herkömmlich implementierten Version mit den Value Types um Faktor 3,5 mehr Frames/s liefert. Die schnellere Berechnung verbrauchte wesentlich weniger Speicher MB/s.

Projekt Valhalla steht als Early-Access-Release zur Verfügung, jedoch sind keine Release-Daten genannt worden. Die Java-Keynote beschloss Brian Goetz mit seiner Aussage, dass es eine großartige Zeit für Java sei und schneller neue Features bereitgestellt werden.

Code-One-Konferenzprogramm

Im Konferenzprogramm wurden mehr als 556 Vorträge angeboten, die mit dem Oracle Code One Schedule Builder, in einer mobilen App für Android & iOS, sowie im Browser über den Session Catalog ausgewählt werden konnten. Besonders nützlich war der App-Button „What’s On“, der über die jeweils aktuell laufenden Vorträge informierte, sodass die Besucher zu jedem Zeitpunkt das Vortragsprogramm im Blick hatten. Die Java Champions, die sich bereits am Samstag im Hotel Westin St. Francis zu den Schwerpunkten JDK 13, OpenJDK, GraalVM, AdoptOpenJDK, Jakarta EE, Sprachausrichtung, Java & Machine Learning ausgetauscht hatten, und andere Entwickler zeigten ihre Coding-Erfahrungen mit Java SE, JavaFX, GraalVM, Docker, Microservices, Micronaut, Quarkus, Helidon, Kubernetes und Cloud-Native-Merkmale auf der Oracle-Code-One-Konferenz.

Ein Höhepunkt im Vortragsprogramm war die GraalVM, mit mehr als 35 Vorträgen. Die GraalVM ist eine universelle Virtuelle Maschine (VM) für Anwendungen, die in JavaScript, Python, Ruby, R oder mit den JVM-basierten Programmiersprachen Java, Scala, Kotlin, Clojure und LLVM-basierten Sprachen C/C++ geschrieben wurden. Im September 2019 wurde die GraalVM 19.2.0.1 veröffentlicht, mit Performance-Verbesserungen und polyglotter Unterstützung für verschiedene Programmiersprachen. Sie ermöglicht die Interoperabilität in einer gemeinsamen Laufzeitumgebung. GraalVM kann eigenständig oder im Kontext von OpenJDK, Node.js, Oracle-Datenbank oder MySQL betrieben werden. Mit der GraalVM Ahead-of-Time-Fähigkeit kompilierte Native Images verfügen über eine optimierte Startup-Zeit und verringern den Memory-Verbrauch von JVM-basierten Applikationen. Die GraalVM kann wahlweise als Open Source Community Edition (CE) oder als Enterprise Edition (EE) mit OTN-Lizenz verwendet werden.

Die GraalVM-Architektur ergänzt das Java-Ökosystem, beispielsweise mit dem in Java entwickelten C2 Graal JIT Compiler oder der Verwendung von GraalVM Native Images mit fn project & functions in der Cloud. GraalVM und OpenJDK können auch für den Kubernetes Native Java Stack Quarkus.io, die Microservices Frameworks Micronaut oder Helidon verwendet werden.

Tomas Langer (Oracle Engineering) und Peter Nagy (Oracle Product Manager) zeigten das Microservices Framework Helidon mit den beiden Ausprägungen Helidon SE & Helidon Microprofile im Zusammenspiel mit der GraalVM. Helidon SE verwendet Java-Bibliotheken zur Entwicklung von Microservices, die mit Netty ausgeführt werden. Helidon MP unterstützt das Microprofile 3.0 mit seinen Komponenten. In der Kombination mit der GraalVM wird die Startup-Zeit für Microservices signifikant verringert.

Kevin Rushforth vom Oracle JavaFX Engineering erläuterte den Status von JavaFX 13 und dessen Weiterentwicklung. Er ging auf das Projekt OpenJFX ein, nach dem die JavaFX-Module durch die Modularisierung aus dem JDK herausgelöst werden konnten und OpenJFX 13 mit dem Oracle OpenJDK 13 zusammenpassen. JavaFX 13 wird als eigenständiges Release über Gluon angeboten und kann als Open Source Software mit dem Oracle OpenJDK oder wahlweise mit dem Oracle JDK 13 und dem Java SE Subscription Support betrieben werden. Über Gluon wird ein dezidierter Support für JavaFX angeboten. Die JavaFX-Module können mit dem javafx-sdk-13 (SDK) über dem Java-Module-Path integriert werden oder über die JavaFX 13 JMOD’s, die mit dem Werkzeug jlink in eigene Anwendungen eingebunden werden.

Maven und Gradle wird von JavaFX 13 ebenfalls unterstützt. Die Beteiligung der JavaFX-Entwicklergemeinschaft wird durch das Projekt Skara mit einem OpenJFX-GitHub-Mirror vereinfacht. Kevin Rushforth stellte die Roadmap vor, JavaFX 14 soll eine Woche vor dem JDK 14 erscheinen. Dieser Release-Rhythmus soll künftig beibehalten werden. Bei JavaFX 14 und höheren Versionen stehen die Bugfixes im Vordergrund, aber auch der kontinuierliche Plattform-Support für Compiler, Betriebssysteme oder die Ersetzung von abgekündigten Plattform-APIs (Metal ersetzt OpenGL bei Apple).

Marcus Hirt (Director Engineering Datadog) zeigte in mehreren Vorträgen die Weiterentwicklung von JDK Mission Control & JDK Flight Recorder als eigenständige Projekte im OpenJDK. Nach der geplanten Fertigstellung vom JMC 7.0.0, im Zusammenspiel mit dem JDK 11 und höheren JDK-Versionen, soll die Roadmap von JDK Mission Control, jeweils JMC 7.1.0 (Cipher Events, Improved-Thread-Visualisierung), JMC 7.2.0 (JMC Agent, Flame Chart View) und JMC 8.0.0 (Integrierter JMC Agent Support, evtl. Agent Rules Engine) umfassen.

Zoran Sevarac (Associate Professor University Belgrade Faculty of Organisational Sciences) und Frank Greco (Chairman NYJavaSIG) verdeutlichten in ihrem Vortrag „Machine Learning für Java Entwickler“, dass Java zur ML-Programmierung eingesetzt werden kann und die Standardisierung von Java mit ML vorangetrieben werden soll. Sie demonstrierten die Visual Recognition (VisRec) Specification JSR 381 für Java und gingen auf verschiedene ML-Services-Angebote in der Cloud von Oracle, AWS, Azure und GCP ein.

Developer Exchange-Ausstellung und Groundbreaker Hub

In der Ausstellung im Untergeschoss des Moscone South konnten sich die Entwickler mit den einzelnen Firmen austauschen. Neben der Developer-Exchange-Ausstellung war der Oracle Groundbreakers Hub, der sich als zentraler Treffpunkt für die Entwickler etabliert hat. Dort wurde Kaffee und Blockchain-Bier serviert.

Die Groundbreaker Ausstellung bot eine Vielzahl von technischen Attraktionen: IoT Augmented Reality Manufacturing, Code Card, Meet the Experts, AR Charity-Schach-Challenge, Groundbreaker Escape Room Duke’s Lab & Superhero Escape Room, Raspberry Pi Super Computer mit 1060 Raspberry Pi’s, Groundbreakers Arcade mit Retro Spielen, Hackergarten 2019 mit Open Source Project-Coding und Video Hangout.

Auf der Groundbreaker-Hub-Bühne wurde die Verleihung des Duke’s Choice Award 2019 verkündet. Die Preisträger sind jUnit (Developer Tools), JavaBin (Ökosystem), CarePay (Innovation im Gesundheitswesen), Jakarta EE (Open Source Contribution), Dataverse (Forschung & Lehre), Chris Thalinger (Community-Auszeichnung) und die Java User Group Denver.

In der direkten Diskussion mit Mike Milinkovich (Executive Director Eclipse Foundation Inc.) am Groundbreaker Hub wurde die Weiterentwicklung von Jakarta EE betrachtet. Dabei ging es nach der Freigabe von Jakarta EE 8 um die potenziellen Merkmale eines Jakarta EE 9 Release, das drei Schwerpunkte haben könnte: die Umbenennung aller javax Packages in einem einzigen großen Schritt, die Jakarta-EE-9-Runtime-Unterstützung für das JDK 11 LTS und der Wegfall von veralteten APIs, wie beispielsweise dem JSR 88 Java EE Application Deployment oder anderen APIs, die ab dem Release Jakarta EE 9 und höheren Versionen nicht mehr gebraucht werden.

JCP Party & Awards

In diesem Jahr war die JCP Party & Awards Ceremony im Golden Gate Room vom Westin St. Francis Hotel im 32 Stockwerk einer der Höhepunkte für die Entwickler, die bei angeregten technischen Diskussionen ausgelassen feiern konnten. Der JCP zelebrierte sein 20jähriges Bestehen mit einer Erdbeersahnetorte und vergab die JCP Awards an die JUG Utrecht, JUG Thodoris Bais für JSR 385, das JCP Program Management Office, die Gruppe von Jean-Marie Dautelle, Werner Keil, Otavio Santana für JSR 385 Units of Measurement 2.0 und Brian Goetz, Iris Clark für JSR 386 Java SE 12 & JSR 388 Java SE 13.

Sonntagabend wurden die Entwickler von Oracle zum Developer Appreciation Event in das Lokal Thirsty Bear eingeladen, um einen direkten Kontakt zum Oracle Engineering anzubieten. Viele Entwicklergruppen waren auch nachts auf den Straßen von San Francisco unterwegs, um deren Bars auszukosten. Auf der Groundbreakers Unconference wurden die Teilnehmer am Montag und Dienstag, jeweils um 19:00 Uhr, zu Pizza & Tacos auf der Terrasse im dritten Stockwerk vom Moscone South, eingeladen.

Dienstagabend bat die Eclipse Foundation die Java Community Entwickler zum Jakarta EE Cloud Native Come Together, die sich über das neue Jakarta EE 8 Release austauschen konnten. Google bemüht sich um die Entwickler beim Java Influencer Gathering in ihrem Gebäude an der Bay Bridge in San Francisco. Dabei wurden Demos zu Java, App Engine, Dart & Flutter, Cloud Code, Kotlin und Anthos gezeigt.

Oracle Code One Keynote: Building Intelligent, Cloud Native Applications

Kirk Borne (Booz Allen Hamilton) berichtete über Data Science und die Überschneidung von Emerging Technologien. Er erläuterte die Konzepte von Daten, als Eingangsquelle für Auswertungen und die Ableitung von intelligenten Aktionen zur Ansteuerung von digitalen Technologien, wie IoT/IIoT, 4D Printing, AR/VR, Digital Twins, Blockchain, autonomous-data-driven Application Systems und Learning Systems.

Greg Pavlik (Oracle Senior Vice President and CTO PaaS) sprach darüber, dass intelligente Anwendungen maschinelles Lernen (ML) und Daten aus mehreren Quellen verwenden, um Vorhersagen und Vorschläge zu treffen, personalisierte Benutzererfahrungen zu liefern und bessere Entscheidungen zu ermöglichen. Entwickler und Datenwissenschaftler könnten erkennen, wie Cloud-native, serverless Anwendungen mit Hilfe von Algorithmen für ML in einer transaktionalanalytischen Datenbank und einer Cloud-Infrastruktur erstellt werden. Greg Pavlik erläuterte die Applikationsentwicklung mit der Oracle Cloud.

Community Keynote: Game On

Vincent Mayers, Oracle Developer Community Programs Manager, kam in dem Charakter eines Soldaten, im gepanzerten Kampfanzug auf die Bühne und geleitete das Bühnenstück „Game On“ durch die technologische Zeitreise mit Computerspielen aus den vergangenen Jahrzehnten. Das erste Spiel handelte von Browser-Games aus den 90er Jahren, bei dem ein Netscape-Browser mit Genuss den Spaghetti-Code verschlang. Mittels Programmierung konnte man den Code ändern und eine Zeitreise antreten, die Unterstützung von Super Mario brachte, der gegen den fortwährend Spaghetti-Code essenden Browser kämpfte.

Das zweite Spiel begann mit den 2000er Jahren, in denen EJBs, Struts, Groovy, Scala, Spring und Grails verwendet wurden. Beim finalen Spiel ging es um das Universum in der Cloud mit Minecraft, Java, Lambdas & Stream API. Letztlich gewann die Community das dritte Spiel und bescherte das Happy End: „Game Over“. Die Darsteller kamen allesamt aus der Java-Community und spielten mit Begeisterung ihre Rollen.

Feedback

Das Feedback der Konferenzbesucher war überaus positiv, geprägt durch die Fertigstellung von Java SE 13 mit dessen Veröffentlichung auf der Code One, der Wahlfreiheit von kompatiblen OpenJDK-Versionen verschiedener Hersteller und der Fortführung von Java EE 8 durch die Eclipse Foundation mit Jakarta EE 8. Die unterschiedlichen Serverless Open-Source-Projekte durch unabhängige Cloud-Functions-Anbieter fanden breite Zustimmung bei den Cloud-native-Entwicklern, und das universelle Deployment mit Kubernetes fand Anklang im DevOps-Umfeld. Viele Entwickler scheinen sich mit der technologischen Ausdehnung der Konferenz anzufreunden. Die Entwicklergemeinschaft möchte auch künftig ihre innovativen Technologieansprüche für Cloud-Native-Anwendungen mit Java & Kubernetes sowie Java für Machine Learning Applikationen schneller umgesetzt wissen und schaut schon gespannt auf die Oracle Code One 2020.

Geschrieben von
Wolfgang Weigend
Wolfgang Weigend
Wolfgang Weigend arbeitet als Sen. Leitender Systemberater bei der Oracle Deutschland B.V. & Co. KG. Er beschäftigt sich mit Java-Technologie und -Architektur für unternehmensweite Anwendungsentwicklung.
Kommentare

Hinterlasse einen Kommentar

1 Kommentar auf "Die Highlights der Oracle Code One 2019"

avatar
4000
  Subscribe  
Benachrichtige mich zu: