Tempo frei für Groovy 1.6

Im Fokus der neuen Version der dynamischen Skriptsprache Groovy stehen vor allem Performanceverbesserungen - sowohl für Compiler als auch für Laufzeitumgebung.

vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Die quelloffene dynamische Skriptsprache für die Java Virtual Machine (JVM) Groovy gibt es jetzt in Version 1.6. Zwischen Groovy 1.5 im Dezember 2007 und der neuen Version liegen sieben Releases, die jetzt in Groovy 1.6 münden. Das Hauptaugenmerk galt dabei der Verbesserung der Performance – sowohl für den Compiler als auch für die Laufzeitumgebung.

Die Verkürzung der Kompilierzeit ist wichtig, wenn man Groovy-Code zur Laufzeit der Applikation evaluiert, weil dann der Code dynamisch kompiliert wird. Sie ist nun um etwa den Faktor vier schneller. Auch die Laufzeit des kompilierten Codes wurde beschleunigt, hauptsächlich durch Optimierungen im Methoden-Dispatch. Die Benchmarks zeigen eine Verbesserung um mehrere Faktoren. Die Relevanz dieser Messungen für die eigenen Applikationen schwankt allerdings stark. Am besten testet man hier selbst.

Groovy hat als dynamische Sprache für die Java Virtual Machine (JVM) bisher ausschließlich Metaprogrammierung zur Laufzeit unterstützt. Mit der neuen Version kommt Metaprogrammierung zur Compile-Zeit hinzu. Man kann sogenannte AST-Makros (Abstract Syntax Tree) benutzen, um mit Annotations markierten Code anzureichern. Einige solche Makros sind in Groovy 1.6 enthalten, zum Beispiel @Immutable, @Singleton, @Delegate, @Lazy, @Mixin und @Bindable.

Neu in der Sprache sind parallele Zuweisungen wie im Tausch (a,b) = [b,a], die den Referenzen des linken Tupels die Werte der rechten Liste zuweist. Überschüssige Listenelemente werden nicht zugewiesen, fehlende als "null".

Darüber hinaus gibt es natürlich die üblichen Bugfixes und auch Vervollständigungen der Standardbibliothek (GDK), inklusive Unterstützung der Java Management Extensions (JmxBuilder). Außerdem gibt es erweiterte Notationsmöglichkeiten (DSL) für die Metaprogrammierung zur Laufzeit.

Bei den mitgelieferten Werkzeugen wurde besonders groovydoc stark verbessert. Bemerkenswert ist aber auch grape (Groovy Adaptable Packaging Engine), das einem Skript eine Beschreibung der Bibliotheken erlaubt, von denen es abhängt. Diese werden dann transitiv herangezogen und bei Bedarf aus einem Repository geladen (Ivy). Man kann entweder die grape API nutzen oder das AST-Makro @Grab.

Der Upgrade von 1.5 auf 1.6 sollte reibungslos funktionieren. (Dierk König) / (ane)