Java 12: Welche Rolle spielen Java Updates für Software Engineers?

Publish date:

Das Java 12 Release steht in den Startlöchern: Was hält die neue Version bereit und wie relevant ist sie für Software Engineers? Unser Capgemini Java-Experte Michael berichtet über die neuen Java Features und deren Bedeutung im Projektalltag.

In diesem Monat wird das Java 12 Release veröffentlicht. Eine neue Java Version bringt meist einige Neuerungen mit sich, wodurch sich die Frage stellt, ob ein Upgrade für ein Projekt sinnvoll ist oder eine stabile Vorgängerversion bevorzugt wird.

Michael ist Delivery Architect bei Capgemini mit Fokus auf Backendtechnologie und langjähriger Erfahrung als Software Engineer. In seinem Job hat er täglich mit Java zu tun und weiß, worauf es bei neuen Java Versionen für seine Projekte im Automotive-Bereich ankommt.

Im Interview stellt er die wichtigsten Features des Java 12 Releases für Software Engineers vor, erklärt, welche Relevanz Java 12 für seine Projekte bei Capgemini hat und welche Anforderungen kürzere Java Release-Zyklen an den Job eines Software Engineers stellen.

Welche Rolle spielt Java in deinen Projekten?

Java spielt in den Projekten eine sehr maßgebliche Rolle, denn es repräsentiert im Backendbereich die Programmiersprache Nummer 1 in der Individualsoftwareentwicklung für das Enterprise Umfeld. Das hat verschiedene Gründe: Java ist eine stabile Programmiersprache und hat als Plattform eine riesige Community. Es existiert ein umfangreiches Angebot an Frameworks und Lösungswegen zur Umsetzung einer Vielzahl von wiederkehrenden Problemstellungen. Ebenso von Vorteil ist die Sicherstellung der Abwärtskompatibilität, wodurch bereits existierender Java Code auch in einer neueren Version lauffähig bleibt.

Java 12 Release

Das Java Update steht kurz bevor: Welche Neuerungen hält Java 12 bereit?

Im Rahmen von Java 12 wurden in Summe acht JEPs (JDK Enhancement Proposal) angekündigt. Ein Schlüsselfeature stellt für Entwickler das JEP 325: Switch Expressions dar. Die restlichen Features sind nützliche Neuerungen, stehen aber für unser Tagesgeschäft eher im Hintergrund.

Alle Features von Java 12 im Überblick:
JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector
JEP 230: Microbenchmark Suite
JEP 325: Switch Expressions
JEP 334: JVM Constants API
JEP 340: One AArch64 Port, Not Two
JEP 341: Default CDS Archives
JEP 344: Abortable Mixed Collections for G1
JEP 346: Promptly Return Unused Committed Memory from G1

Wie beurteilst du die Relevanz von Java 12 für deine Projekte?

Generell stufe ich die Relevanz von Java 12 für unsere Projekte als eher gering ein. Klar freuen sich Software Engineers, die mit Java arbeiten, auf neue Features wie z. B. Switch Expressions. Allgemein gesehen bietet Java 12 aber nicht den großen Funktionshub sowie keinen Longterm Support (LTS). LTS Versionen bieten über längere Zeiträume hinweg Support und Security Patches vom Hersteller, was besonders für das Enterprise Umfeld von großer Bedeutung ist.

Welche der acht JEPs des JDK 12 bieten einen Mehrwert für deine Projekte bei Capgemini?

Die Switch Expressions würde ich gerne einsetzen, da ich diese Features schon seit Beginn meiner Java Coding-Karriere vermisse. Mit diesem neuen Feature muss das fehleranfällige Break nicht mehr gesetzt werden. Relikte wie das Break Statement und das damit verbundene Fall Through, das eintritt, wenn das Break Statement vergessen wird, sind wenig intuitiv und führten oft zu Fehlern.

Außerdem lassen sich mit dem neuen Java Feature Fallunterscheidungen deutlich eleganter formulieren: Dazu wird die Syntax leicht verändert und erlaubt nun die Angabe einer Expression (case L -> syntax) sowie mehrerer Werte beim case, was bisher nicht möglich war.

Im folgenden Codebeispiel wird der Einsatz von Switch Expressions veranschaulicht.

Abb. Beispiel für die Verwendung des Features Switch Expressions aus dem Java 12 Update.
Abb. Beispiel für die Verwendung des Features Switch Expressions aus dem Java 12 Update.

Wie entscheidet ihr bei Capgemini, ob neue Java Versionen in den Projekten eingesetzt werden?

Entscheidend für Einführung eines Upgrades ist, wie relevant die Features der neuen Version für das jeweilige Projekt sind. Meistens wird die Entscheidung in Absprache mit den technischen Vertretern auf Kundenseite beschlossen.
In seltenen Fällen wird ein Upgrade direkt durchgeführt. Wobei „durchführen“ natürlich nicht heißt, dass wir direkt das jeweilige Software System auf die neue Java Version upgraden. Dies wird in jedem Fall im Vorfeld im Rahmen einer Testphase evaluiert.

Java Features in der Vergangenheit und in der Zukunft

Was war für dich bislang das bedeutendste Java Feature und warum?

Für mich stellen die im Rahmen von Java 5 eingeführten Generics eines der bedeutendsten Features dar. Allgemein werden mit Generics im Java-Umfeld Sprachmittel bezeichnet, mit denen Klassen und Methoden durch Typparameter parametrisiert werden können, um Typsicherheit trotz generischer Programmierung zu ermöglichen. Durch dieses Feature hält die typsichere, generische Programmierung Einzug in die Java Plattform. Das Konzept ist für die Implementierung von Datenstrukturen wie Collections oder Containern besonders elementar.

Welche zukünftigen, bereits angekündigten Java Features sind für dich und deine Projekte spannend?

Das JEP 326: Raw String Literals, das ursprünglich für Java 12 vorgesehen war, aber wieder verworfen wurde, finde ich besonders spannend. Es erleichtert erheblich den Einsatz von Sonderzeichen sowie den Aufbau von mehrzeiligen Strings, also den Einsatz von Strings über mehrere Zeilen. So bieten Raw String Literals einen eleganten Weg den Text auszuschreiben und haben deutliche Auswirkungen auf die Lesbarkeit vom Java Code.

Welche Rolle wird Java 13 in deinen Projekten bei Capgemini spielen?

Das kann ich noch nicht mit Sicherheit sagen, aber vermutlich wird Java 13 eine größere Rolle als Java 12 spielen, da es sich wahrscheinlich wieder um eine LTS Version handeln wird. Wie bereits angedeutet, sind gerade Java Versionen mit LTS besonders wichtig im Enterprise Umfeld. Daher haben momentan vor allem die LTS Versionen Java 8 und Java 11 eine hohe Relevanz in unseren Projekten. Wir sind aktuell in der Diskussion, auf welche Version wir im Projekt upgraden werden, ich denke, es wird die 13-er.

Kurze Java Release-Zyklen und Auswirkungen

Die Java Release-Zyklen werden kürzer: Woran liegt dies deiner Meinung nach?

Allgemein wird die Welt immer schnelllebiger und das spiegelt sich auch in den Programmiersprachen, Frameworks und Plattformen wider. Ein nicht zu vernachlässigender Punkt ist sicherlich der Mindset-Change bei vielen Entwicklern mit Web-Background. Dort und in der agilen Entwicklung allgemein sind es Software Engineers gewohnt, ständig die neuesten Features einzusetzen. Daraus ergibt sich dann natürlich die Forderung, neue coole Features zeitnah auch im Backend-Bereich einsetzen zu wollen.

Welche Auswirkungen haben Java Releases für Software Engineers und IT-Architekten im Job?

Persönlich bedeuten Java Releases für mich als Software Engineer und IT-Architekt, dass ich immer am Ball bleiben und Neuerungen im Blick haben muss. Idealweise informiere ich mich schon im Vorfeld über bevorstehenden Java Updates und deren Features und beurteile deren Wichtigkeit für das eigene Projektumfeld.

Der konkrete Einfluss einer neuen Java Version hängt natürlich mit dem jeweiligen Projekt zusammen. Je nachdem, ob ich eine neue state-of-the-art Webapplikation entwickle oder eine bereits existierende Enterprise Applikation betreue, die einen starken Fokus auf Stabilität legt, entscheide ich, ob ein Upgrade im Projekt sinnvoll ist.

Weiterbildung in Java

Wie wichtig ist die persönliche Weiterbildung in Java für einen Software Engineer?

Die persönliche Weiterbildung ist in einem Java Job elementar. Kenntnisse über die bevorstehenden Neuerungen sind wichtig, um moderne, langlebige und zukunftsfähige Applikationen zu schaffen. Es wird hier gern das Prinzip der Evolutionary Architecture genannt: Damit ist gemeint, dass ein System bzw. dessen Architektur so aufgebaut werden soll, dass es explizit in der Lage ist, Veränderungen mitzugehen. Ein guter Software Engineer oder IT-Architekt sollte erkennen können, welche Neuerungen oder Trends einen echten Mehrwert für das jeweilige Projekt liefern und auf welche Java Features besser verzichtet werden sollte.

Wie hältst du dich über stetig neue Java Features auf dem Laufenden?

Persönliches Interesse für die Themen, an denen man täglich arbeitet, ist eine wichtige Voraussetzung, denn an praktischen Beispielen lernt man meiner Meinung nach am besten. Software Engineers und IT-Architekten können sich durch Fachliteratur, Blogs, Newsletter und Hobbyprojekte über neue Java Technologien informieren.

Wie bildet sich ein Software Engineer bei Capgemini in Java weiter?

Bei Capgemini haben wir die Möglichkeit, regelmäßig Schulungen oder Konferenzen zu besuchen. Das finde ich sehr gut, weil dort ein Austausch mit anderen Kollegen stattfindet. Es werden interne Hackathons zum Wissensaufbau von Zukunftsthemen veranstaltet und im Rahmen von Projekten und Communitys gibt es einen guten Erfahrungsaustausch mit den Kollegen. Generell ist die Kultur bei uns sehr offen, sodass jeder auf andere Kollegen zugehen und Fragen stellen kann.

Vielen Dank für die Insights in den Projektalltag mit Java Updates!

Sie programmieren gern mit Java und interessieren sich für einen Job als Software Engineer oder IT-Architekt? Capgemini bietet viele spannenden Java Jobs. Bewerben Sie sich direkt als Junior-Software-Ingenieur, Senior-Software-Ingenieur oder IT-Architekt über unser Jobportal.

Weitere Posts

Frauen

Teilzeit IT-Jobs: Flexible Teilzeitmodelle bei Capgemini

Capgemini Karriere
Date icon März 13, 2019

Ein anspruchsvoller IT-Job in Teilzeit – wie ist das eigentlich möglich? Susanne Becher...

Cybersecurity

Cybersecurity Jobs bei Capgemini: Ein Berufsfeld mit Zukunft

Capgemini Karriere
Date icon Februar 28, 2019

Sie interessieren sich für IT-Sicherheit? Erfahren Sie im Interview mit Christian Daum,...

Automotive

Einstieg als Software Engineer in München: Herausforderungen in der bayerischen Metropole

Capgemini Karriere
Date icon Januar 29, 2019

Software Engineer Sabrina berichtet im Interview, welche Vorteile der Capgemini-Standort...

cookies.

Mit dem Fortsetzen des Besuchs dieser Website akzeptieren Sie die Verwendung von Cookies.

Für mehr Informationen und zur Änderungen der Cookie-Einstellungen auf Ihrem Computer, lesen Sie bitte Privacy Policy.

Schließen

Cookie Information schließen