Interview mit Dierk König

"JavaFX 8 und das Streaming API sind meine Highlights – Extension Methods sehe ich kritisch"

Hartmut Schlosser
Dierk König

Java 8 hat für jeden eine andere Bedeutung – soviel machen unsere JAXenter-Interviews mit Vertretern der Szene klar. Nicht immer werden die Lambda-Ausdrücke an erster Stelle genannt, und hie und da mischen sich auch kritische Töne unter das Release-Resumée. So erklärt Dierk König in diesem Interview, warum die Extension Methods in Interfaces seiner Meinung nach mit Vorsicht zu genießen sind. Außerdem gibt er eine Einschätzung zur Produktionstauglichkeit von JavaFX 8 ab und stellt die Neuerungen in OpenDolphin 0.9 vor.

Letzte Woche ist Java SE 8 erschienen. Was sind deine persönlichen Highlights?

Dierk König: JavaFX 8 und das Streaming API sind meine Highlights. Lambda-Ausdrücke und das Date/Time API waren ja schon lange überfällig. Richtige Closures wären schöner gewesen, aber das lies sich leider nicht so gut in die bestehende Sprache integrieren. Die Extension Methods in Interfaces sehe ich kritisch.

Was genau findest du daran kritisch?

 Dierk König: Ich habe mir noch keine abschließende Meinung dazu gebildet, habe aber einige Bedenken. Erstens führen sie eine Art Mehrfachvererbung ein, was es schwieriger macht zu verstehen, welche Methode aufgerufen wird. Da braucht man sehr gute Tool-Unterstützung, um beim Erweitern von Code nicht aus Versehen Methoden abzuschatten – ähnlich wie bei Vererbung auch schon, jetzt aber in einer Dimension mehr. Ich sehe noch öfter als bisher die Frage auf uns zukommen, welches Interface denn jetzt in welcher Version auf dem Klassenpfad liegt: zur Compile-Zeit und zur Laufzeit.

Daraus folgt schon der zweite Punkt. Die bestehenden Tools sind darauf nicht ausgelegt und machen vor allem auch für die Optimierung Annahmen, die bisher gegolten haben, mit extension methods aber nicht mehr gelten. Der Hotspot-Bug war ein Beispiel dafür.

Für mich sieht es eher so aus, als würden die extension methods das Problem der interface-evolution nicht lösen sondern verschleiern. Deshalb bin ich mit diesem Feature vorsichtig.

Wer sich noch mehr Gedanken dazu machen möchte, kann ja mal überlegen, warum Vererbung insgesamt nicht mehr so gern gesehen wird und welche neue Art von Kopplung die extension methods mit sich bringen.

Welche Bedeutung hat Java 8 bei canoo? Habt Ihr unmittelbar schon mit den neuen Features zu tun?

Dierk König: Ja, wir sind da sehr stark involviert, sowohl was Java 8 als auch was JavaFX 8 angeht. In einem Kundenprojekt konnten wir sogar einen Top Ten hotspot bug in Java 8 isolieren.

Gerade habt Ihr auch eine neue Version von OpenDolphin vorgestellt. Worum geht es bei OpenDolphin? Und was ist neu?

Dierk König: OpenDolphin ist eine Applikationsarchitektur, die auf dem presentation model pattern beruht. Sie entkoppelt die Applikationslogik von der Benutzeroberfläche. Neu in Version 0.9 ist die volle Unterstützung von HTML5 und Push, die zusammen mit den bestehenden Eigenschaften von OpenDolphin zu einer neuen Klasse von Applikationen führen, die dem Benutzer von Gerät zu Gerät folgen können und Zusammenarbeit im Team fördern.

OpenDolphin wird immer auch im Kontext von JavaFX genannt. Siehst du es auch als Projekt, mit dem sich die Migration von Swing nach JavaFX erledigen lässt?

Dierk König: Ja, das ist sogar eine besondere Stärke. OpenDolphin erlaubt es, die UI-Technologie mit dem geringstmöglichen Aufwand auszuwechseln.

Würdest du deinen Kunden schon den produktiven Einsatz von JavaFX empfehlen?

Dierk König: Im Prinzip ja, es sei denn, spezielle Anforderungen des Projekts sprächen dagegen, wie der Bedarf an noch nicht vorhandenen Widgets oder Eigenschaften wie Accessibility. Wer gleichzeitig auf OpenDolphin baut, reduziert die Risiken, die mit dem Einsatz einer neuen Technologie einher gehen.

Und jetzt steht wohl die Planung für Java 9 an. Jigsaw und das Modulsystem werden da sicher wieder ein Thema sein. Für dich auch?

Dierk König: Ich freue mich auf das Modulsystem. Davon verspreche ich mir auch Vorteile für Groovy.

Vielen Dank für dieses Gespräch!

Dierk König (JavaOne Rock Star) ist Fellow bei der Canoo Engineering AG in Basel. Er betreibt das Open-Source-Projekt Canoo WebTest und ist Committer in den Projekten OpenDolphin, Groovy, Grails, GPars und GroovyFX. Er publiziert und spricht auf internationalen Konferenzen zu Themen moderner Softwareentwicklung. Er ist Autor des Buchs „Groovy in Action“. Twitter: @mittie.

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: