Sonntag, 12. Februar 2012 |
| |
Wenn momentan über Sprachenvielfalt diskutiert wird, ist ein Thema ganz "hip": Groovy++. Das Projekt, eine Erweiterung der Groovy-Sprache ist noch sehr neu und wenig bekannt. Wir sprachen mit dem Groovy-Experten Dierk König, der im Rahmen der Java Language Days auf der JAX 2010 auch über Groovy++ reden wird.
JAXenter: Groovy++ als neue Erweiterung für die Groovy-Sprache ist momentan in aller Munde. Was genau ist G++?
Dierk König: Groovy++ ist eine Erweiterung von Groovy, mit der Groovy Code ähnlich schnell wird wie natives Java. Außerdem bekommt man statische Typprüfungen mit Typinferenz, also die Compile-time Sicherheit von Java mit mehr Komfort. Um die Spracherweiterung zu nutzen, benötigt man lediglich eine weitere jar-Datei im Klassenpfad. Dann kann man die gewünschten Code-Teile, z.B. Klassen, per @Typed annotieren. Der Rest passiert automatisch. Der Ansatz nutzt die Fähigkeit von Groovy aus, per AST-Transformationen in den Kompilationsschritt einzugreifen.
Der Name "Groovy++" soll zeigen, dass es erstens immer noch Groovy ist, also die ganze Syntax-Schönheit der Sprache umfasst, andererseits aber auch über die Standardeigenschaften hinausgeht. Interessanterweise kann man mit Groovy++ "statische" und "dynamische" Eigenschaften mischen, so dass auch in annotierten Klassen dynamische Teile wie zum Beispiel Groovy Builder weiter verwendet werden können. Auf einige Tricks der Meta-Programmierung muss man allerdings verzichten.
JAXenter: Wer steckt eigentlich hinter Groovy++?Dierk König: Begründet hat den Ansatz Alex Tkachman, ehemals JetBrains, Entwickler des Java/Groovy Cross-Compilers, Mitgründer von G2One und Groovy Core Committer. Mittlerweile sind weitere Groovy Core Committer hinzugestossen.
JAXenter: Warum braucht Groovy deiner Meinung nach eine Erweiterung in dieser Form?
Dierk König: Groovy ist eine Erweiterung zu Java, kein Ersatz. Wir haben immer darauf geachtet, dass man jederzeit nahtlos zwischen beiden Sprachen wechseln kann.
Bei der Performance-Optimierung wird das oftmals so ausgenutzt, dass kritische Teile (oft nur wenige Klassen) von Groovy-Projekten in Java realisiert werden. Das bleibt auch weiterhin möglich. Für viele Programmierer war das aber nicht gut genug. Sie wollten auch diese Teile mit der Einfachheit von Groovy schreiben können. Das ist jetzt möglich.
JAXenter: Auf der JAX 2010 wirst du gemeinsam mit Markus Völter die Java Language Days moderieren. Kommt Groovy++ dort auch zur Sprache? Was wird die Konferenzteilnehmer noch alles erwarten?
Dierk König: Es gehört auf jeden Fall mit zu den "Groovy Sternen am Firmament" über die ich reden werde. Es wird aber sicher auch beim Groovy Powerworkshop ein Thema sein und beim Speaker's Panel. Für die Konferenzteilnehmer wird sich noch eine interessante Kombination von Groovy++ mit nebenläufiger Programmierung in Groovy ergeben. Hier betreten wir Neuland, weil Konzepte der Parallelisierung und Hochperformanzanwendungen endlich mit einer leicht verständlichen Sprache möglich werden.
Ich möchte noch hinzufügen, dass Groovy++ im Moment noch in einem experimentellen Stadium und bei weitem noch nicht fertig ist. Die Zukunft ist aber zum Greifen nah!
Dierk König ist Fellow bei der Canoo Engineering AG, Basel. Er betreibt das Open-Source-Projekt Canoo WebTest und ist Committer in den Projekten Groovy, Grails und GPars. Er publiziert und spricht auf internationalen Konferenzen zu Themen moderner Softwareentwicklung. Er ist Autor des Buchs „Groovy in Action“. Twitter: @mittie