Interview mit Lutz Hühnken

Neues aus der Scala-Welt: „Ein Blick auf Scala ist ein Blick auf die Zukunft von Java“

Hartmut Schlosser

Lutz Hühnken

Was gibt’s Neues aus der Scala-Welt? Lutz Hühnken gibt uns auf der W-JAX einen Einblick in die aktuellen Entwicklungen für Scala 2.13 und Scala 3.0. Im Interview klären wir außerdem, warum ein Blick auf Scala auch ein Blick in die Zukunft von Java sein könnte.
x
x

Treffen Sie Lutz Hühnken live auf der W-JAX 2017!

Sessions:

 

JAXenter: Du zeigst auf der W-JAX Neues aus der Scala-Welt. Aktuell ist ja die Version Scala 2.12 – das „Scala für Java 8.“ Nun hat Java 8 mit den Lambda Expressions funktionale Elemente eingeführt. Wie groß ist aus deiner Sicht noch der Abstand zwischen Java und Scala, wenn es um funktionale Programmierung geht?

Um wirklich funktional programmieren zu können, braucht man mehr als Lambdas.

Lutz Hühnken: Um wirklich pragmatisch funktional programmieren zu können, benötigt man mehr als Lambdas – zum Beispiel unveränderliche („immutable“) Collections, Pattern Matching, Fehlerbehandlung mit „Try“, „Either“ und dergleichen. Ein Blick auf vavr.io zum Beispiel, ein Projekt, das versucht, diese Lücke zu füllen, gibt einen Eindruck, was in Java noch fehlt. Da werde ich auch eine kleine Bestandsaufnahme machen. Nebenbei werde ich übrigens auch zeigen, dass es eigentlich das „Cross-Platform-Scala“ ist, da es sich auch in JavaScript und nativen Code kompilieren lässt.

JAXenter: Wie sieht es mit der Interoperabilität zwischen Java 8 und Scala aus?

Lutz Hühnken: Es war schon mit der Vorversion 2.11 möglich, auf Java 8 zu laufen, aber 2.12 nutzt Java-8-Features voll aus. Beispiele sind die automatische Konversion zwischen Java-Lambdas und Scala-Funktionen, das Übersetzen von Scala-Traits (Interfaces, die auch Implementierungen enthalten können) in Java-Interfaces, wo möglich, usw. Auch der von Scala 2.12 generierte Bytecode ist für Java 8 optimiert und schneller sowie kompakter als in früheren Versionen.

DevOpsCon Whitepaper 2018

Free: 40+ pages of DevOps expert knowledge

Learn about Containers,Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Kai Tödter (Siemens), Nicki Watt (OpenCredo), Tobias Gesellchen (Europace AG) and many more.

JAXenter: Und Java 9? Gibt es hier irgendwelche neuen Reibungspunkte zwischen Scala und dem Modulsystem Jigsaw?

Lutz Hühnken: Die Arbeiten in diesem Bereich sind noch nicht abgeschlossen. Die jüngsten Versionen von Scala und sbt enthalten einige Fixes, die Probleme mit Java 9 beheben. Bestehender Code läuft bereits auf der Java 9 JVM, neue Java 9 Features wie JPMS lassen sich aber, Stand heute, von Scala aus noch nicht nutzen. Hier ist auch die Community gefragt, sich einzubringen – schließlich ist Scala ein Open-Source-Projekt!

JAXenter: Du schreibst in deinem Abstract, ein genauer Blick auf Scala ist vielleicht auch ein Blick auf die Zukunft von Java. Wie meinst du das?

Scala bietet die Möglichkeit, Dinge, die vielleicht in einer zukünftigen Java-Version landen werden, schon heute anzuwenden.

Lutz Hühnken: Viele Features, die in der Java-Welt diskutiert werden, sind in Scala schon lange vorhanden: Datenklassen (in Scala: Case Classes), Typinferenz, Pattern Matching, usw. Ein weiteres Beispiel ist das Flow API, das in Java 9 Einzug gehalten hat. In der Scala-Welt kennen wir schon seit einiger Zeit Reactive Streams, die die Vorlage dafür bilden.

Scala bietet also die Möglichkeit, Dinge, die vielleicht in einer zukünftigen Java-Version landen werden, schon heute anzuwenden – und damit auch, Debatten um das Für und Wider solcher für Java neuen Sprachmittel besser nachvollziehen zu können.

JAXenter: Blicken wir in die Zukunft von Scala: Worum wird es bei Scala 2.13 gehen? Welche Features sind in der Pipeline?

Lutz Hühnken: Scala 2.13 wird ein „Library-Release“ – an der Sprachspezifikation wird sich nichts ändern, aber die Standardbibliothek wird überarbeitet. Auffälligste Änderung wird die neue Collections-Library sein, auf die ich in meinem Vortrag etwas ausführlicher eingehen werde.

JAXenter: Wie sieht es mit dem Veröffentlichungstermin von Scala 2.13 aus? Wann dürfen wir mit dem Release rechnen?

Lutz Hühnken: Eine Vorabversion – „Milestone 2“ oder kurz M2 ist bereits verfügbar. M3 sollte dieser Tage erscheinen, M4 ist für Januar geplant, und im ersten Quartal 2018 dann auch das Release.

JAXenter: Und dann natürlich das große Scala 3.0. In welche Richtung weist dieses Release?

Lutz Hühnken: Scala 3 wird einen ganz neuen Compiler haben. Eine Vorabversion ist bereits verfügbar, im Rahmen des Projektes „Dotty“ (der Arbeitstitel für die Entwicklung der nächsten Scala-Version). Ich freue mich darauf, dass Union- und Intersection-Types eingeführt werden, wie sie z.B. auch in TypeScript bekannt sind. Diese Änderung wird für Entwickler offensichtlich sein, im Gegensatz zu einigen anderen, die vor allem Interna betreffen. So wird das Typsystem vereinheitlicht und komplett auf „Dependent Object Types“ basieren, ohne dass sich an der Oberfläche viel ändert.

Im Rahmen dieses Projektes entstehen übrigens auch interessante zusätzliche Tools – z.B. scalafix. Ähnlich wie gofix dient es dem automatisierten Umschreiben von Source Code, wenn z.B. API-Updates in Bibliotheken „mechanische“ Anpassungen erfordern.

JAXenter: Vielen Dank für dieses Interview!

Lutz Hühnken ist freiberuflicher Consultant, Trainer und Solutions Architect. Er arbeitet seit 1997 in der Softwareentwicklung und war in verschiedenen Rollen an der Realisierung von Webprojekten in unterschiedlichen Branchen beteiligt. Aktuell beschäftigt er sich vorrangig mit Reactive Systems – der Entwicklung von fehlertoleranten, skalierbaren, verteilten Systemen – mit Scala, Akka, Play und Lagom.

Mehr zum Thema:

Scala Tutorial: Objects, Vererbung mit Traits, Apply und Co.

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: