Interview mit Michael Vitz

Java 14 Highlights: „Records erleichtern die Erstellung von Java Beans extrem“

Dominik Mohilo

Pünktlich zum Erscheinen von Java 14 haben wir uns mit Michael Vitz, Senior Consultant bei INNOQ, unterhalten. Im Interview erzählt er uns von seinen Highlights in Java 14 und den Schwierigkeiten bei der Umsetzung. Auch der neue Release-Zyklus ist Thema in unserem Gespräch.

JAXenter: Java 14 ist gerade erschienen. Was ist dein Highlight des Releases?

Michael Vitz: Dieses Mal finde ich es schwer, ein einzelnes Highlight zu nennen. Für die Sprache selbst ist es wohl das Preview von Records, die die Erstellung von klassischen Java Beans extrem erleichtern. Abseits hiervon finde ich die neuen NullPointerExceptions super, da mich diese sehr unaufgeregt und ohne, dass ich etwas tun muss, unterstützen.

Ich finde die neuen NullPointerExceptions super, da mich diese sehr unaufgeregt unterstützen.

JAXenter: Welches Feature vermisst du in Java 14?

Vitz: Ehrlich gesagt, weiß ich das gar nicht. Für mich ist Java bereits seit Java 8 sehr rund. Ab und an merke ich, dass etwas gefehlt hat, wenn ich ein neues Feature sehe. Alles in allem sticht für mich persönlich aktuell aber nichts akut heraus.

Java Whitepaper

Gratis-Dossier: Java 2020 – State of the Art

GraalVM, Spring Boot 2.2, Kubernetes, Domain-driven Design & Machine Learning sind einige der Themen, die Sie in unserem brandneuen Dossier 2020 wiederfinden werden!

Update auf Java 14?

JAXenter: Wirst du bzw. werden deine Kunden sofort auf das neue Release updaten oder lohnt sich das für dich bzw. deine Kunden nicht?

Vermutlich wird ein Großteil hier auf JDK 17 warten

Vitz: Viele meiner Kunden haben gerade erst ein Update von JDK 8 auf 11 hinter sich und werden tendenziell nicht direkt das nächste Upgrade auf 14 durchführen. Vermutlich wird ein Großteil hier auf JDK 17 warten und somit auf das nächste Release mit Long-Term-Support wechseln.

JAXenter: Welche Schwierigkeiten siehst du dabei dabei, die neuen Java-Versionen gleich in Produktion einzusetzen?

Vitz: Ich glaube, es liegt vor allem am Vertrauen. Obwohl die am JDK entwickelnden Menschen stets betonen, dass ein Upgrade von z. B. 13 auf 14 nur ein kleiner Schritt ist, wird das nicht so wahrgenommen. Viele meiner Kunden möchten gerne ein längeres Intervall mit Updates erhalten. Zudem müssen aktuell zusätzlich zum JDK-Update auch Bibliotheken, Build-Tools oder die IDE upgedatet werden. Außerdem werden mittlerweile ja tatsächlich vorher deprecatete Teile aus dem JDK entfernt, was zu zusätzlichem Aufwand führen kann.

JM: Was hältst du von JEP 371 Hidden Classes, das möglicherweise mit einer der nächsten Java-Versionen kommen wird? Viele unserer Leser scheinen sich besonders dafür zu interessieren …

Vitz: Da ich primär Anwendungen mit Java und eher selten Frameworks baue, hoffe ich, dass dieses Feature auf mich wenig Auswirkungen hat. Das Versprechen, dass nun von Frameworks generierte Klassen nicht in Stack Traces auftauchen, kann sich allerdings als hilfreich erweisen und Stack Traces etwas besser lesbar machen. Ich lasse mich hier gerne positiv überraschen.

JAXenter: Nähert sich Java durch Features wie JEP 358 Helpful NullPointerExceptions „modernen“ Sprachen wie Kotlin an?

Ich finde allerdings nicht, dass sich Java durch genau dieses Feature an Kotlin annähert

Vitz: Ich empfinde die neuen NullPointerExceptions als deutliche Verbesserung. Zu erraten, welche Variable Null war, entfällt mit ihnen, was mir bei mancher Fehlersuche wirklich weiterhilft. Ich finde allerdings nicht, dass sich Java durch genau dieses Feature an Kotlin annähert. Kotlins Konzept mit Null umzugehen, ist deutlich ausgefeilter und steckt ja bereits mit im Compiler. Im Allgemeinen ist aber zu beobachten, dass sich das JDK an Konzepten bedient, die in anderen Sprachen, wie auch Kotlin bereits erprobt wurden. Das finde ich sehr gut, da sich die Sprache so weiterentwickelt, ohne jedes neue Feature selbst komplett erproben zu müssen.

JAXenter: Welche Wünsche bzw. Präferenzen hast du für das ebenfalls noch in diesem Jahr erscheinende Java 15?

Vitz: In den letzten Tagen habe ich erst bewusst gemerkt, dass dem seit JDK 11 vorhandenen HTTP-Client ein Konzept fehlt, um ausgehende Requests oder eingehende Responses zu filtern. Damit lässt sich beispielsweise vor dem Senden automatisiert ein Header mit Trace-ID hinzufügen. Es wäre super, wenn das ergänzt würde. Ich glaube aber, dass das bis jetzt noch nicht auf dem Radar des JDKs aufgetaucht ist.

JAXenter: Was hältst du generell von der Beschleunigung, die Java durch den sechsmonatigen Releasezyklus erlebt?

Vitz: Auch wenn sich das Modell in der Praxis bei meinen Kunden bisher nicht etabliert hat, finde ich die Beschleunigung gut. Sie gibt gerade den JDK-Entwicklern die Möglichkeit, viel früher Feedback einzuholen. In Kombination mit den Experimental-Features erhöht dieses Vorgehen die Wahrscheinlichkeit, gute APIs und Sprachfeatures zu entwickeln, ungemein.

JAXenter: Vielen Dank für dieses Interview!

 

Michael Vitz verfügt über mehrjährige Erfahrung in der Entwicklung, Wartung und im Betrieb von Anwendungen auf der JVM. Aktuell beschäftigt er sich vor allem mit den Themen Microservices, Cloud-Architekturen, DevOps, Spring Framework und Clojure. Als Senior Consultant bei INNOQ hilft er Kunden, wartbare und wertschaffende Software zu entwickeln.
Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: