Programmiersprache Scala.js 1.0 ist fertig

Der Scala-to-JavaScript-Compiler hat die Version 1.0 erreicht, was eine gewisse Reife des Projekts für den produktiven Einsatz zum Ausdruck bringen soll.

In Pocket speichern vorlesen Druckansicht 21 Kommentare lesen
Programmiersprache: Scala.js 1.0 geht über die Ziellinie

(Bild: Piyawat Nandeenopparit/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Alexander Neumann
  • Rainald Menge-Sonnentag

Nach etlichen Jahren der Entwicklung sind die Macher hinter dem Scala.js-Projekt nun zu der Überzeugung gekommen, den Scala-to-JavaScript-Compiler mit der Version 1.0 zu versehen. Der Schritt hatte sich bereits im Dezember des vergangenen Jahres angedeutet, als ein erster Release Candidate zur Version 1.0 veröffentlicht worden war. Das 1.0-Release soll die Reife des Projekts für den produktiven Einsatz zum Ausdruck bringen und die Rückwärtskompatibilität für künftige Minor-Versionen garantieren.

Große Neuerungen bringt Scala.js 1.0 nicht mit, da der Fokus im Vergleich zu Version 0.6.x auf der Vereinfachung statt neuen Features lag. Die Scala.js-Entwickler formulieren das in ihren eigenen Worten wie folgt: "Scala.js 1.0.0 ist der Höhepunkt unserer Bemühungen, alle Aspekte von Scala.js, von der Sprachsemantik bis zu den internen APIs, zu vereinfachen, zu spezifizieren und zukunftssicher zu machen, sodass es nichts mehr wegzunehmen gibt."

Allerdings gibt es eine nennenswerte Änderung am globalen Bezug zu JavaScript: js.Dynamic.global und @JSGlobalScope greifen auf den globalen Scope von JavaScript zu, nicht mehr auf ein globales Object. Diese Änderung bedeutet, dass "globale" Variablen, die einige JavaScript-Umgebungen bereitstellen, etwa "require" in Node.js, nun für Scala.js sichtbar sind. Es ist also möglich, "require" mit dem neuen Scala.js dynamisch aufzurufen.

Standardmäßig gibt Scala.js ECMAScript-2015-Code aus. Gegenüber dem früheren ECMAScript-5.1-Modus lässt das eine anscheinend bessere Anzeige von Stack-Traces und Fehlermeldungen in interaktiven Debuggern zu. Außerdem werden statische Felder und Methoden in JavaScript-Klassen ordnungsgemäß vererbt und der generierte Code ist wohl kürzer.

Das neue Release ist weder binärkompatibel mit Version 0.6.x noch mit den früheren Meilensteinen und RCs der 1.x-Serie. Bibliotheken müssen neu kompiliert und mit Scala.js 1.0.0 neu veröffentlicht werden, um kompatibel zu sein. Mehrere Bibliotheken, die den Kern des Scala/Scala.js-Ökosystems bilden, wurden bereits veröffentlicht und sind für Scala.js 1.0.0 verfügbar. Einen Überblick hierzu gibt es auf dieser Übersichtsseite.

Weitere Informationen zum 1.0-Release finden Interessierte in der Blog-Ankündigung.

Scala.js blickt auf eine inzwischen rund siebenjährige Geschichte zurück. Der Compiler entstand wie die Programmiersprache Scala an der École Polytechnique Fédérale de Lausanne (EPFL). Bereits zum Release der Version 0.6 bescheinigten die Entwickler dem Werkzeug 2015 eine gewisse Reife für den professionellen Einsatz, indem sie es nicht mehr als experimentell kennzeichneten.

Auch der Erfinder von Scala, Martin Odersky, sieht in dem Compiler ein wichtiges Standbein für die Programmiersprache. In einem Gespräch mit heise Developer sagte er zu Scala.js: "Das ist eine enorm leistungsfähige Implementierung, die aber derzeit hauptsächlich von Scala-Entwicklern genutzt wird, die aufs Frontend wollen. Aber ich denke, Scala.js ist auch etwas, das sich andere Leute, die von JavaScript kommen, anschauen könnten."

Siehe dazu auf heise Developer:

(ane)