Search Bites: Java Developer Room der FOSDEM 2016

Wie “frei” ist das OpenJDK?

Uwe Schindler

(c) Shutterstock/Dashikka

Lucene-Entwickler und JAX Speaker Uwe Schindler berichtet in einer neuen Folge der Kolumne Search Bites von brandaktuellen Entwicklungen in Java 9 und OpenJDK. Auf der FOSDEM kam es diesbezüglich offenbar zu einem Zusammenprall der Interessen zwischen SAP und Oracle.

Java Developer Room

Am letzten Wochenende fand wie jedes Jahr Ende Januar die FOSDEM-Konferenz mit fast 5000 Besuchern im belgischen Brüssel statt. Darunter fand auch der Java Developer Room statt, welcher aufgrund des jährlich zugenommenen Interesses nun in einem größeren Hörsal auf dem Veranstaltungsgelände der Freien Universität Brüssel (ULB) verlegt wurde. Grund für dieses hohe Interesse waren wohl zahlreiche Talks aus dem Team von Oracle und der OpenJDK-Gemeinde. Zwischen den Vorträgen war es natürlich auch möglich, mit vielen Bekannten aus der Java-Gemeinde zu sprechen: Mark Reinhold, Christian Thalinger, Stephen Chin und Dalibor Topić (alle Oracle); aber auch mit Andrew Haley (RedHat) oder Volker Simonis (SAP).

Im Zeichen von Java 9

Natürlich stand der Developer Room ganz im Zeichen des kommenden Java 9. Neben einigen von der JavaOne bekannten Vorträgen über die neuen Features wie die Jigsaw-Modularisierung gab es dazu auch zahlreiche Workshops. Mitglieder aus Open-Source-Projekten stellten ebenfalls ihre Arbeit an der Vorbereitung der Java-9-Modularisierung vor: Robert Scholte vom Apache-Maven-Projekt gab bekannt, dass die Umstellungen in Maven bereits voll im Gange seien, so dass demnächst auch Java-9-Module erzeugt und auf Maven Central deployed werden können.

In einer Extra-Sitzung am Rande wurde zwischen den Apache Maven Developern und Mark Reinhold zudem über ein neues Maven-Projektlayout diskutiert, so dass zukünftig Multi-Release JAR files (JEP 138) erzeugt werden können. Solche JAR-Dateien können Klassen mit dem gleichen Namen enthalten, wobei je nach ausführender Java Runtime zur Laufzeit eine andere Variante der Klasse aus dem JAR-Archiv verwendet wird. Somit ist es zum Beispiel möglich, dass Projekte, welche in Java 7 oder 8 noch sun.misc.Unsafe benutzen, ab Java 9 automatisch die neuen VarHandles benutzen können. Dazu muss lediglich für die bisher sun.misc.Unsafe verwendende Klasse eine zweite Variante in dem Multi-Release-JAR existieren, welche dann im Austausch verwendet wird.

(Bild © Wiggert Loonstra, https://twitter.com/rfscholte/status/694599731515899904)

Lucene, Eclipse, Scala, JRuby…

Ich selbst präsentierte die Arbeiten an Apache Lucene und stellte das Randomized Testing Framework vor, welches nicht nur derzeit dabei hilft, Fehler in der Java 9 VM aufzuspüren, sondern auch schon in der Vergangenheit dabei geholfen hat. Ich gab auch den Zuhörern einige Hinweise, an welchen Stellen es mit Java 9 zu Problemen kommen kann und wie man den Code darauf vorbereiten kann (siehe auch: Java 9 Release verschoben: Warum Jigsaw noch nicht fertig ist). Gerade im Umfeld dieses Vortrages wurde das verstärkte Eingehen auf die Community seitens Oracle hervorgehoben. Denn im Zuge von Java 9 ist es unumgänglich, dass extensiv vor dem Release getestet und adaptiert wird.

Auch Lars Vogel vom Eclipse-Projekt stellte die Arbeiten an der nächsten Version der Eclipse-Umgebung vor, hier schaut es aber leider noch nicht so toll mit Java 9 aus, denn die Anpassungen am Compiler und der IDE sind noch lange nicht fertig.

Ein weiteres Thema waren die JVM-Sprachen Scala und JRuby. Es gab Vorträge über die Entwicklung eines neuen Compilers für Scala aber auch einen Vortrag von Charles Nutter über die Bytecode-Optimierungen in der JRuby Runtime, so dass Schwächen in OpenJDK’s Hotspot Optimizer umgangen werden.

Wie „frei“ ist das OpenJDK?

Zu guter Letzt kam es noch zu einem Highlight: In der Session “Meet The Governing Board” stellte sich das Board des OpenJDK-Projekts für Fragen aus dem Publikum zur Verfügung. Aus New York war auch das Boardmitglied Doug Lea zugeschaltet, den viele Leser von seinen Büchern über Java Concurrency kennen. Unter der Moderation von Georges Saab wurden zahlreiche Themen rund um die Community diskutiert. Dabei wurde von vielen Leuten aus dem Publikum das Bug-Reporting kritisiert: Für Außenstehende ist es unmöglich, direkt im JIRA-Bug-Tracker des OpenJDK-Projekts neue Reports zu erzeugen. Außerdem kann man das von JIRA bekannte “Watch”-Feature nicht benutzen, was das Verfolgen von Änderungen erleichtert.

Andrew Haley versprach, sich demnächst darum zu kümmern. Mark Reinhold befürchtet aber immer noch, dass “nutzlose” Bug Reports von Endusern die Arbeit im Projekt behindern könnten (“mein Java Plug-in geht plötzlich nimmer in Google Chrome”). Allerdings beweisen Beispiele aus bekannten Open-Source-Projekten der Eclipse Foundation oder der Apache Software Foundation das Gegenteil!

Zuletzt wurde das Publikum auch Zeuge eines Konflikts zwischen den an der Hotspot VM mitarbeitenden Committern der Firmen SAP und Oracle. Das derzeitige Verfahren zur Annahme neuer Patches in der Hotspot VM wurde scharf kritisiert: Laut Volker Simonis ist die Anzahl an externen Patches im OpenJDK-Projekt inzwischen bei 20% des Gesamtvolumens angekommen, aber es kommt durch den komplexen Workflow, bei dem immer ein Oracle-Mitarbeiter teilnehmen muss (als “Sponsor”), zu Verzögerungen gerade beim Beheben von fatalen Fehlern. Hieran sieht man leider immer noch, dass das OpenJDK-Projekt nicht “ganz frei” ist. Auch hat Oracle seinen Standpunkt zum TCK (dem Technology Compatibility Kit – einer Testsuite für Java-Implementierungen) noch nicht geändert. Wegen diesem ist 2010 ja die Apache Software Foundation aus dem Java Community Process ausgestiegen.

JAX 2016 LogoTreffen Sie Uwe Schindler auf der JAX 2016:

Überblick zu Apache Lucene und den darauf basierenden Suchservern Apache Solr und Elasticsearch

Dieser Vortrag wird eine kurze Einführung in das Gebiet der Volltextsuche und der Bibliothek Apache Lucene geben und dann die neuen Features und Verbesserungen präsentieren, die seit Version 5 hinzugekommen sind. Dabei wird das besondere Augenmerk auf die Suchserver Apache Solr und Elasticsearch gelegt, denn diese werden von den meisten Usern eingesetzt. Der Vortrag wird ebenfalls einen kurzen Featurevergleich zwischen den beiden Servern präsentieren, sodass neue Nutzer besser entscheiden können, welches der beiden Produkte besser für das Projekt geeignet ist.

Donnerstag, April 21, 2016 – 9:00 bis 10:00

Aufmacherbild: Danger Shark silhouettes von Shutterstock / Urheberrecht: Dashikka

Verwandte Themen:

Geschrieben von
Uwe Schindler
Uwe Schindler
Uwe Schindler ist Mitglied des Project Management Committee im Apache-Lucene-Projekt. Er ist mit seiner Consulting-Firma SD DataSolutions GmbH in Bremen ansässig und kümmert sich am Zentrum für Marine Umweltwissenschaften (MARUM) um die Suche nach geowissenschaftlichen Daten in der Umweltdatenbank PANGAEA.Blog: http://blog.thetaphi.deTwitter: @ThetaPh1
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: