Modulare Java-Zukunft: Das Java Platform Module System erklärt

Seite 5: Fazit

Inhaltsverzeichnis

Das Modulsystem revolutioniert den Umgang von Java mit Artefakten. Statt einfacher Behälter können JARs in Zukunft Module mit eigener Identität, expliziten Abhängigkeiten und einer klar definierten API sein. Das System wertet die Informationen aus und stellt sicher, dass Anwendungen nur starten, wenn alle benötigten Module vorhanden sind (Reliable Configuration), und dass Module ihre Interna unzugänglich machen können (Strong Encapsulation). Darüber hinaus soll das JPMS Sicherheit, Wartbarkeit und Performance verbessern.

Dabei wird die Abwärtskompatibilität zwar theoretisch erhalten, praktisch kann aber dennoch einiges schiefgehen. Sind diese Schwierigkeiten gemeistert, ermöglicht das Modulsystem eine schrittweise Modularisierung von Anwendungen, Bibliotheken und Frameworks. Eine Migration zum Modulsystem wird neben dem Festhalten der Architektur in Code mit neuen Features wie Services und Layern belohnt.

Unabhängig von einzelnen Features könnte aber die positivste Folge sein, dass das Ökosystem als ganzes Modularisierung auf Artefaktebene ernster nimmt als zuvor. Insbesondere Build Tools und IDEs, aber auch Analysewerkzeuge werden nun auf einer weiteren Ebene Features und Feedback liefern. Viel mehr Entwickler werden sich mit Konzepten der Modularisierung großer Anwendungen auseinandersetzen, und mit aktiv zu pflegenden Moduldeklarationen ist die Zeit vorbei, in der gefühlte und tatsächliche Architektur einer Anwendung beliebig auseinanderlaufen können.

Dank besserem Verständnis für die Grundlagen wird auch der Schritt zu OSGi leichter fallen, und Projekte, die davon profitieren würden, es aber bisher aus Komplexitätsgründen gemieden haben, können es neu in Betracht ziehen, wenn sie dank des JPMS einen Teil des Wegs dorthin zurückgelegt haben. Nach einer holprigen Übergangsphase sollte das Java-Ökosystem in einigen Jahren deutlich gefestigter dastehen als heute.

Nicolai Parlog
ist selbständiger Softwareentwicker, Autor und Trainer. Er lebt in Karlsruhe, bloggt auf codefx.org und schreibt mit Manning "The Java 9 Module System".
(jul)