Dienstag, 16. Dezember 2014

Release von Java 8

Fast 1000 Tage lagen zwischen dem Release von Version 7 des Java-Development-Kits und ihrem Nachfolger. Seit dem 18. März ist das JDK 8 offiziell die aktuelle Version. 

Im Rahmen eines Workshops informierte sich die form4 Enterprise Unit über die Neuerungen und diskutierte Chancen und Risiken für den produktiven Einsatz. 

 

 

Erweiterungen und neue Features

Verankerung der Funktionalen Programmierung

Für Java-Verhältnisse haben es die Änderungen in sich: die Funktionale Programmierung hält Einzug in das JDK, das durch Lambdas, FunctionalInterfaces, Streams und andere Massenoperationen auch zukunfts- und konkurrenzfähiger wird.

Um die neuen Ansätze im JDK zu verankern, ohne dabei bestehende Interfaces oder Klassen zu verwerfen, wurde die Möglichkeit geschaffen, Interfaces mit Hilfe von default-Methoden und static-Methoden anzureichern. In der Folge ist die nachträgliche Erweiterung von bestehenden Interfaces möglich. Der Preis dafür ist ein aufgeweichtes Schnittstellen-Verständnis, da Interfaces nun selbst Implementierungen enthalten dürfen. So werden lose gekoppelte Schnittstellen u. U. mit Abhängigkeiten versehen. Ein zumindest bedächtiger Einsatz ist für eine saubere Architektur anzuraten. Das gilt übrigens auch für die dadurch mögliche Mehrfachvererbung per Interface.

Date/Time API (JSR-310)

Die neue DateAndTimeApi (JSR-310) beendet eine lange Durststrecke für den intuitiven Umgang mit Datumswerten, Zeitpunkten und Zeiträumen unter Java. Statt auf alternative Bibliotheken wie Joda-Time zurückzugreifen, kann nun die Standard-API verwendet werden. Diese wurde vom Joda-Time-Entwickler Stephen Colebourne mitentwickelt, der seine Erfahrungen einbringen konnte. Mittlerweile wird auch vom Joda-Time-Projekt der Umzug auf die neue API empfohlen.

Weitere neue Features

Auch in vielen anderen Bereichen lohnt sich ein Blick in das neue JDK:

  • null-Rückgaben konzeptionell mit Optional entgegentreten

  • diverse funktionale Anpassungen von Collection und Comparator

  • nützliche Erweiterung für java.nio.file.Files

  • Änderungen am Speicheraufbau der JVM (Stichwort: PermGen Space)

  • JavaFX8 löst Swing ab

Bereit für den produktiven Einsatz?

Ob im Zusammenspiel mit Spring oder Tomcat, die Verwendung vom JDK 8 ist ab sofort möglich. Allerdings lohnt bei der Verwendung der neuen Features eine Prüfung aller Mitspieler und Tools, damit es kein böses Erwachen gibt. Die großen IDEs bieten bereits Tool-Unterstützungen wie Code-Vervollständigung oder automatisches Refactoring für die neuen Features an. Zumindest in Eclipse sind diese aber erst mit der nächsten verfügbaren Version (Mars) ausgereift.

Der Einstieg lohnt sich und wir können es kaum erwarten Java 8 mit seinen neuen Funktionen, Verbesserungen und Erleichterungen zur Implementierung von Anwendungen einzusetzen und bis ins letzte Detail zu testen.

Allerdings muss der Nutzen der neuen Features und Paradigmen im speziellen Fall geprüft und der zu erzielende Effekt beurteilt werden, da die Potentiale der funktionalen Programmierung  nicht einfach durch Umschreiben anonymer Klassen auf Lambdas ausgeschöpft werden.

comments powered by Disqus