Scala 2.12.0-M2: Programme und Compiler setzen voll auf Java 8

Michael Thomas

Scala Logo (Quelle: scala-lang.org)

Zielte der erste Meilenstein von Scala 2.12 großteils noch auf Java 6 ab, ist die Sprache ihrem Ziel – eine größtmögliche Kompatibilität mit Java 8 – mit Veröffentlichung des zweiten nun einen gewaltigen Schritt näher gekommen.

Für die für Januar 2016 angepeilte Hauptversion 2.12 der JVM-Sprache Scala ist ein zweiter Milestone-Release verfügbar. Im Gegensatz zum ersten Meilenstein, der noch stark der derzeit aktuellen Version 2.11 ähnelte und auf Java 6 abzielte, können in Scala 2.12 geschriebene Programme sowie der Compiler ab sofort nur noch mit Java 8 ausgeführt werden. Zudem werden Lambdas nun zu Closures nach Art von Java 8 kompiliert: Der Compiler generiert für jedes Lambda eine Methode, die den Lambda Body enthält. In der Laufzeit wird die Methode als Argument an die vom JDK bereitgestellten LambdaMetaFactory weitergegeben, die daraufhin ein Closure-Objekt erstellt. Der Vorteil ist den Entwicklern zufolge, dass der Compiler von nun an nicht für jedes Lambda eine anonyme Klasse generiert, was zu deutlich kleineren JAR-Dateien führen soll.

Weitere Features

Beginnend mit dem zweiten Meilenstein kommt bei Scala 2.12 standardmäßig das Backend „GenBCode“ zum Einsatz. Da dieses ASM-Bytecode direkt aus Compiler-Trees generiert, soll es nach Aussage der Entwickler deutlich effizienter als das Standard-Backend von Scala 2.11 sein. Das GenBCode-Backend enthält außerdem einen neuen Bytecode-Optimierer. Für diesen stehen zur Zeit folgende Optionen zur Verfügung: Die Inline-Ersetzung finaler Methoden, die Ersetzung eins Closure-Aufrufs durch den Aufruf der entsprechenden Lambda Body-Methode (falls die Closure innerhalb derselben Methode zugeordnet und aufgerufen wird), sowie die Löschung von totem Code.

Scala 2.12.0-M2 steht ab sofort als Distribution über scala-lang.org und via Maven Central bereit.
Für einen Übersicht über die weiteren Pläne des Scala-Teams bietet es sich an, einen Blick in den JAXenter-Artikel “Das ist die Scala Roadmap” zu werfen. Empfehlenswert ist darüber hinaus ein Talk von Adriaan Moors, Scalas technischem Leiter bei Typesafe, auf der GOTO Chicago 2015, der u. a. die Features von Scala 2.12 behandelt:

Verwandte Themen:

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: