Groovy 2.1 mit vollem Invoke Dynamic Support

Hartmut Schlosser

Groovy, die dynamische Sprache für die JVM, liegt in der neuen Version 2.1 vor. Ein Highlight des Releases ist der volle Support für die in Java 7 eingeführte Bytecode-Konstruktion Invoke Dynamic. Worum geht es dabei genau? Ein kleiner Exkurs:

Invoke Dynamic behebt ein Problem, das viele dynamische Sprachen mit Methodenaufrufen haben. Die JVM verlangt traditionellerweise, dass die Signatur einer Methode zur Compile-Zeit bekannt ist und auch die aufzurufende Methode bereits an der entsprechenden Klasse existiert. Bei dynamischen Sprachen ist genau dies aber oft nicht der Fall, sodass Methodenaufrufe bisher die Erzeugung eigentlich überflüssigen Codes verlangten, um die Semantik der dynamischen Sprache auf die Methodenaufruf-Semantik der JVM abzubilden. InvokeDynamic stellt nun ein Methodenaufruf-Bytecode bereit, der diese Einschränkung nicht aufweist, was im Allgemeinen zu einer verbesserten Performanz bei dynamischen Sprachen führt.

Ein großes Thema in Groovy 2.0 war die Einführung einer optionalen statischen Typisierung. Groovy 2.1 erweitert dieses Feature nun um spezielle Annotationen, die bei Dokumentationen und der Typensicherheit von DSLs helfen sollen. Außerdem werden statische Type Checker Extensions geboten. Erweiterte Konfigurierungsoptionen bei der Kompilierung, Funktionen zur einfachen Kombination von Annotationen, die Integration des Concurrency-Projekts GPars 1.0 (Groovy Parallel Systems) und zahlreiche Bugfixes runden das Release ab.

Alle Details zu Groovy 2.1 gibt es in den Release Notes nachzulesen. Mehr über Invoke Dynamic finden Sie im Java Magazin 11.2012, in dem Markus Heiden das neue Bytecode-Konstrukt in seinem Artikel „Bytecode 2.0 – Was ist invokedynamic, und warum ist es wichtig?“ unter die Lupe nimmt.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.