Scala 2.11 verabschiedet sich von .NET-Backend

Seit gut zehn Jahren wächst und gedeiht die Sprache für die JVM nun bereits. In Version 2.11 verabschieden sich die Entwickler unter anderem vom .NET-Backend und machen sich daran, den Compiler in Module aufzuteilen.

In Pocket speichern vorlesen Druckansicht 43 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Julia Schmidt

Die Programmiersprache Scala steht nun in Version 2.11 bereit. Ihre Entwickler haben sich für das Release unter anderem damit beschäftigt, unnötigen Ballast loszuwerden und bessere Strukturen zu schaffen. So ist die Standard-Bibliothek nun wohl um 20 Prozent Bytecode ärmer – Module für XML, Parsen und Swing stehen einzeln oder mit scala-library-all zur Verfügung – und der Compiler wurde intern in Module aufgeteilt.

Letzteres soll dazu dienen, Presentation Compiler, scaladoc und REPL voneinander zu trennen und Außenstehenden so die Mitarbeit an den einzelnen Komponenten zu erleichtern. Momentan stehen sie allerdings noch nicht als separate JARs zur Verfügung, dies soll man erst ab Version 2.12.x umgesetzt sehen. Um den Compiler zudem etwas schlanker zu gestalten, entfernten die Entwickler, wie bereits angekündigt, das .NET-Backend und alte Implementierungen des Pattern Matcher und Bytecode Emitter, da für letztere seit Version 2.10 neue Varianten zur Verfügung stehen. In puncto Leistungsfähigkeit konnte man den Compiler in der inkrementellen Kompilierung, Batch-Kompilierung und Reflection verbessern.

Weitere Neuerungen umfassen veränderliche LongMap und AnyRefMap in den Collections, die Pretty-Printing-Bibliothek für Abstract Syntax Trees Sprinter, eine experimentelle Alternative zum Kompilieren von Closures und ein Backend für den Bytecode Emitter GenBCode. Außerdem weist der Ankündigungstext auf Scala.js hin. Das JavaScript-Backend ist allerdings nicht Teil der Standarddistribution von Scala.

Darüber hinaus konnten die Entwickler etwa Thread-Sicherheit in der Reflection API einführen, einige zusätzliche Methoden der Public Reflection/Macro API freilegen und Pattern Matching anhand von Namen integrieren. Die Änderungen an der Reflection API können unter Umständen dazu führen, dass älterer Code nicht mehr richtig läuft, allerdings sollen sich diese Brüche vergleichsweise leicht beheben lassen. Generell soll sich Code, der sich mit Scala 2.10.x ohne Warnungen bezüglich veralteter Features kompilieren ließ, den Scala-Entwicklern zufolge auch mit der neuen Version in ein lauffähiges Programm wandeln lassen. Weitere Informationen zu Kompatibilität und den neuen Funktionen lassen sich der Ankündigung entnehmen.

Die 2.11.x-Reihe von Scala zielt Java 6 an, Unterstützung für Java 8 ist zunächst noch experimentell und beschränkt sich in Version 2.11 auf das Lesen von Java-8-Bytecode und das Parsen von entsprechenden Quelltexten. Als Lizenz dient mit dem aktuellen Release die originale BSD License – zuvor kam sie in leicht abgeänderter Form zum Einsatz, die Rückbesinnung auf die Ausgangsform soll jedoch mögliche Konfusion aus dem Weg räumen.

Siehe dazu auf heise Developer:


Siehe dazu auch:

  • Scala im heise Software-Verzeichnis