JAXenter.de

Das Portal für Java, Architektur, Cloud & Agile

Scala 2.10.0 M3 mit Ctries und experimentellen Makros

Scala 2.10.0 M3 mit Ctries und experimentellen Makros

Hartmut Schlosser

Wer die Weiterentwicklung der Scala-Sprache hautnah mitverfolgen möchte, dem sei ein Blick in das aktuell erschienene Milestone-3-Release empfohlen. Viele der im kommenden Scala 2.10.0 Release angedachten Features lassen sich bereits ausprobieren.

Beispielsweise lassen sich mit der Hilfe nebenläufiger, Thread-sicherer Collections nun Combiner implementieren. Zur Standard-Library sind Ctries hinzugekommen, die sich über die Combiner-Mechanismus auch parallel betreiben lassen. Ein schnellerer Optimizer und Verbesserungen des RedBlack Trees gehören zu den weiteren Highlights.

Viele sogenannte SIPs, Verbesserungsvorschläge im Scala Improvement Process, wurden umgesetzt, im Einzelnen:

In Scala 2.10 wird es eine Reflection Library geben, die die Nutzung des Java Reflection API überflüssig macht. Außerdem stehen Makros auf dem Programm, die in einer experimentellen Version bereits umgesetzt sind. Makros sind Funktionen, die transparent vom Compiler geladen und während der Kompilierung ausgeführt werden. Mit Makros soll eine Art Metaprogrammierung zur Compile-Zeit für Scala realisiert werden.

Um die Makros hatte es zuletzt eine lebhafte Diskussion gegeben, mit der Frage, ob sich die Entwicklerkräfte wirklich weiter auf Sprachdetails richten sollten ("Fancy language stuff"), oder vielmehr auf die Stabilität und den Ausbau der Scala-Plattform hin zur Enterprise-Tauglichkeit (Beschleunigung des Compilers, besserer IDE Support, Kompatibilitätssicherheit zwischen Releases, bessere Dokumentation und aussagekräftige Fehlermeldungen).

Scala-Erfinder Martin Odersky hatte geantwortet, dass Makros ein brilliant einfaches Schema darstellten, mit dem zahlreiche unterschiedliche Use-Cases abgedeckt werden könnten:

In particular we'll be able to do the analogue of Microsoft's LINQ with macros. And we can express optimizations such as turning foreach applications into while loops. And we can remove a lot of compiler plugins. And finally it looks like we can remove down the road several special cases in the language and the compiler. Martin Odersky

Am besten, man schaut sich das Ganze selber mal an (und berichtet hier in den Kommentaren von den Pros und Contras):

http://scalamacros.org/documentation/gettingstarted.html.

Weitere Details zum Scala 2.10.0 M3 Release - beispielsweise die lange Liste der Bugfixes - hält die Projektseite bereit.

Verwandte Themen: 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).