Suche
Kampf dem Fehlerteufel

Java 10 kommt voran: Bugfixing-Phase hat begonnen

Hartmut Schlosser

© Shutterstock / Vladvm

Java 10 nähert sich mit großen Schritten. Für das Release am 20. März 2018 sollen nun die restlichen Bugs ausgemerzt werden. Welche neuen Features wird Java 10 enthalten?

Die nächste Etappe auf dem Weg zu Java 10 ist erreicht: Heute beginnt die sogenannte Rampdown-Phase 2. Ziel ist es hier, die wichtigen Bugs in JDK 10 zu beheben, die einem erfolgreichen Release im Wege stehen würden. Im Zuge dessen soll auch definiert werden, welche bekannten Probleme gegebenenfalls nicht bis zum Veröffentlichungstag behoben werden sollen.

Am Ende dieses Prozesses steht der erste Release-Kandidat für JDK 10, der am 8. Februar zur Verfügung gestellt werden soll. Am Feature-Set für Java 10 wird sich indessen nichts mehr ändern. Vorgesehen sind 12 JEPs (Java Enhancement Proposals):

JEP 286: Local-Variable Type Inference

JEP 286 wird es Entwicklern ermöglichen, ihren Java-Code kompakter zu formulieren, ohne dabei die Typensicherheit aufzugeben. Entwicklern können dann die oft unnötige Manifest-Deklaration lokaler Variablentypen umgehen. Die Abkürzung beschränkt sich aber auf lokale Variablen mit Initializers, Indizes in erweiterten for-Schleifen und Lokale, die in einer traditionellen for-Schleife deklariert sind. Sie ist nicht verfügbar für Method Formals, Constructor Formals, Methodenrückgabetypen, Felder, Catch Formals oder jede andere Art von Variablendeklaration.

JEP 296: Consolidate the JDK Forest into a Single Repository

In diesem JEP geht es darum, die zahlreichen Repositories des JDK in ein einziges Repository zu überführen, um die Entwicklung zu vereinfachen und zu rationalisieren. Bisher besteht das JDK 9 aus acht Repos: root, corba, hotspot, jaxp, jaxws, jdk, langtools und nashorn. Die FX Sourcen sind nicht Teil des Proposals.

JEP 304: Garbage-Collector Interface

Der JEP 304 wird die Isolierung der verschiedenen Garbage Collectors (GC) verbessern, indem es ein sauberes Interface für die Garbage Collectors integriert. Das soll zu einer besseren Modularität für die HotSpot VM und internen GC-Code führen. Außerdem soll es einfacher werden, einen neuen GC zu HotSpot hinzuzufügen, ohne den bestehenden Code zu stören. GCs aus einem JDK Build auszuschließen soll damit ebenfalls einfacher werden.

JEP 307: Parallel Full GC for G1

Ebenfalls um den Garbage Collector geht es im JEP 307. Das Proposal will die Latenz des in Java 9 zum Standard erklärten Garbage Collectors G1 verbessern, indem der ganze GC parallelisiert wird. Dies soll sich vor allem auf Use Cases auswirken, bei denen die Latenz besonders leidet.

JEP 310: Application Class-Data Sharing

Um die Startzeit und den Footprint zu verbessern, wird das existierende Class-Data Sharing (CDS) Feature weiter ausgebaut. Das Feature erlaubt es Entwicklern, Applikations-Klassen in geteilten Archiven zu nutzen.

JEP 312: Thread-Local Handshakes

Das Proposal wird es ermöglichen, einen Callback auf Threads auszurufen, ohne dass ein globaler VM Safepoint durchgeführt wird. Damit lassen sich individuelle Threads einfach stoppen und nicht nur alle Threads auf einmal.

JEP 313: Remove the Native-Header Generation Tool (javah)

Mit diesem JEP wird das Tool javah aus dem JDK verschwinden. Denn das Tool wird nicht mehr gebraucht, da es mittlerweile bessere Funktionen in javac gibt, die mit JDK 8 eingeführt wurden. jacac bietet die Möglichkeit, native Header-Dateien zum Zeitpunkt der Kompilierung des Java-Quellcodes zu schreiben, wodurch ein separates Tool überflüssig wird.

JEP 314: Additional Unicode Language-Tag Extensions

java.util.Locale und die zugehörigen APIs werden ausgebaut, um zusätzlichen Unicode Extensions der BCP 74 Sprach-Tags zu implementieren. Die Sprach-Tags kamen ursprünglich in Java 7 dazu, beschränken sich aber auf Kalender (ca) und Nummern (nu). Neu hinzu kommen first day of week (fw), region override (rg) und time zone (tz).

JEP 316: Heap Allocation on Alternative Memory Devices

In JEP 316 geht es darum, der HotSpot VM zu ermöglichen, den Java Object Heap auf alternativen Speichern zu allokieren, die der Anwender spezifizieren kann. Ein Beispiel für einen solchen Speicher sind NV-DIMMs. Entwickler können dann wichtige Prozesse auf DRAM-Speicher laufen lassen und große, aber weniger wichtige auf dem günstigen NV-DIMM-Speicher, ohne ihren Applikationscode anpassen zu müssen.

JEP 317: Experimental Java-Based JIT Compiler

Als experimenteller Compiler kommt der Java-basierte JIT Compiler, Codename Graal, für Linux/x64. Graal ist die Grundlage für den ebenfalls experimentellen Ahead-of-Time (AOT) Compiler, der in JDK 9 eingeführt wurde. Der Compiler ist Teil des Projekts Metropolis.

JEP 319: Root Certificates

Das Ziel vom JEP 319 ist es, die Root-Zertifikate von Oracles Root-Certification-Authority-Programm für Java SE Open Source zur Verfügung zu stellen. Das soll OpenJDK Builds für Entwickler attraktiver machen. Außerdem soll es die Unterschiede zwischen den verschiedenen Builds verringern.

JEP 322: Time-Based Release Versioning

Und zu guter Letzt gehört auch das neue Versionierungsschema für die sechsmonatigen Java Releases zu Java 10. Wir haben uns diesen JEP hier genauer angesehen.

Java 10 Roadmap

Wer sich den aktuellen Stand für JDK 10 selbst anschauen möchte, findet unter http://jdk.java.net/10/ Early-Access Open-Source-Builds. Aktuell ist hier die Version jdk-10-ea+39 erschienen:

 

 

Die weitere Roadmap für Java 10 sieht vor, am 22. Februar den finalen Release-Kandidaten zu präsentieren. Gemäß der neuen Release-Politik wird Java 10 dann bereits am 20.3.2018 verfügbar sein, 6 Monate nach der Veröffentlichung von Java 9.

  • 14.12.2017: Rampdown Phase One
  • 11.01.2018: All Tests Run
  • 18.01.2018: Rampdown Phase Two
  • 22.02.2018: Final Release Candidate
  • 20.03.2018: General Availability

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: