Session

Value Objects - das nächste große Ding in Java

Einer der großen Pluspunkte von Java war und ist das statische, starke Typsystem. Das hilft Millionen von Entwicklern, viele Fehler bereits zur Compilezeit zu entdecken und macht die Entwicklung robuster sowie effizienter. Allerdings schleppt Java mit der Unterscheidung zwischen primitiven und Referenztypen von Beginn an eine schwere Bürde mit sich mit. Die vor etwa 30 Jahren aus Performancegründen eingeführten primitiven Datentypen integrieren sich nicht gut mit modernen Ansätze wie Generics, Stream API oder Pattern Matching.

Die Value Objects werden Abhilfe schaffen und die Vorteile beider Welten kombinieren. Damit können wir in Zukunft unveränderbare Datentypen (Zustand und Verhalten, aber ohne eigene Identität) entwerfen, die sich wie primitive Datentypen verhalten. Das steigert nicht nur die Performance und senkt den Speicherverbrauch, es erhöht auch die Les- und Wartbarkeit, da wir dann viel einfacher ausdrucksstarke und trotzdem performante Typen nach den Ideen von DDD selbst definieren können.

Schon seit etwa 10 Jahren wird im Rahmen vom Projekt Valhalla an dieser großen Änderung des Java Typsystems gearbeitet. Daran hängen einige komplexe Fragestellungen, wie z. B. der Umgang mit Default-Werten sowie null-Values, der Umbau der Wrapper-Typen und die Verwendung als generische Typisierung. Im Sommer 2024 hat Java Language Architekt Brian Goetz verkündet, dass nach der langen Zeit der Durchbruch in der Umsetzung erreicht ist. Darum wollen wir gemeinsam schauen, wie Value Classes, Null-Restricted und Nullable Types sowie erweitertes Primitive Boxing die Art und Weise verändern, wie wir in Zukunft programmieren werden.

Falk Sippach

embarc

Darmstadt, Germany

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top