Die sehr mächtigen Möglichkeiten der dynamischen Metaprogrammierung in Groovy sind der Grund für zwei wesentliche Nachteile der Sprache:
- Performanz: Das dynamische Delegieren von Methodenaufrufen zur Laufzeit sorgt dafür, dass Groovy-Anwendungen in aller Regel langsamer als vergleichbare Java-Anwendungen sind.
- IDE-Unterstützung: Die dynamische Typisierung sorgt außerdem dafür, dass Entwicklungsumgebungen nur eingeschränkte Unterstützungen in Form von Codevervollständigung oder Refactoring anbieten können.
Beide Probleme können durch das im Moment häufig diskutierte Projekt Groovy++ beseitigt werden.
Allerdings bietet auch Groovy von Haus aus bereits eine Unterstützung für die Metaprogrammierung zum Kompilierungszeitpunkt. Ein schönes Beispiel dafür ist die Annotation @Delegate, die an Objekt-Attribute einer Klasse angehängt werden kann und dafür sorgt, dass Methodenaufrufe automatisch weiter an die annotierte Instanz delegiert werden. Damit kann eine Art Mehrfachvererbung für Groovy-Klassen erreicht werden.
Einsortiert unter:Groovy and Grails Tagged: annotation, Groovy, refactoring
![](http://stats.wordpress.com/b.gif?host=blog.oio.de&blog=7731718&post=366&subd=techscouting&ref=&feed=1)