Sonntag, 12. Februar 2012 |
Die Version 0.4 des open source verfügbaren und auf Groovy basierenden Web-Frameworks Grails ist seit Anfang Februar in Version 0.4 veröffentlicht worden. Java Magazin-Autor Sven Haiges, selbst "Patcher" und "Evangelist" im Projekt führte mit Graeme Rocher, der das Projekt mitbegründet hat und ihm vorsteht, ein Gespräch zum Status quo des Grails-Projektes. Graeme ist darüber hinaus Mitglied des JSR 241 - The Groovy Language - Executive Committee, Autor des Buches "The Definitive Guide to Grails" und CTO des Open-Source-Softwareunternehmens Skills Matter.
Graeme, du bist der Projekt-Manager von Grails. Kannst du uns Grails bitte kurz beschreiben und uns sagen, was sich wie seit dem ersten Release weiterentwickelt hat?
Graeme Rocher: Grails hat als Web-Framework auf einer ähnlichen Basis wie andere dynamische Sprach-Frameworks, beispielsweise Rails oder Django, angefangen - allerdings mit dem Vorteil der engen Integration mit Java und den Java Enterprise APIs.
Beim initialen 0.1-Release hat es bis zur Auslieferung über ein Jahr gedauert, aber es war schon damals relativ stabil (dank der Tatsache, dass es Spring und Hibernate als Grundlage hatte) und es wurde gut angenommen, was meiner Meinung nach eine Menge zum "Hype" rund um Grails beigetragen hat, obwohl es nur ein 0.1-Release war. Inzwischen nutzen recht verschieden ausgerichtete Personen Grails auf ganz unterschiedliche Art und Weise, manche lediglich als Toolkit, um dynamische Features in Spring- und Hibernate-Anwendungen einzubinden.
Andere wiederum beschränken sich darauf, lediglich GORM, den Groovy Hibernate Wrapper, zu benutzen, während andere es für Prototyping oder Scripting von Spring mithilfe von Spring DSL nutzen. Insgesamt verzeichnen wir in den letzten Monaten einen massiven Anstieg an Nutzern, und es scheint, als ob jeden Monat eine neue Grails-unterstützte Site an den Start geht.
JM: Was sind für dich die Schlüssel-Features von Grails?
Rocher: Die Highlights haben sich im Lauf der Zeit etwas verschoben. Ursprünglich war das Schlüssel-Feature GORM, was im Wesentlichen eine alternative Mapping-Strategie für Hibernate ist, die auf Convention over Configuration plus einer Reihe dynamisch eingebrachter Methoden zur Ausführung von CRUD-Operationen und dynamischen Finders basiert.
Das Erstaunliche daran war, wie es auf eine Groovy- oder Java-Klasse angewendet werden konnte. Sogar auf ein existierendes Hibernate-Domain-Modell! Die momentanen Highlights sind meiner Meinung nach das Framework selbst und das Plug-in-System. Mittlerweile ist Grails ein API zur Ausführung von Runtime-Konfigurationen und dynamischem Projekt-Setup.
Die Früchte davon kann man bereits bei den von Usern beigesteuerten Plug-ins für die Integration mit Acegi Security, Open Laszlo, SOAP via XFire und REST Web Services sehen.
JM: Wie stabil ist Grails?
Rocher: Es wird in Produktion bei einer ganzen Reihe von Websites genutzt - also muss es wohl ziemlich stabil sein! Im Ernst: Grails ist auf einem so soliden Fundament aus Spring MVC und Hibernate aufgebaut, dass der halbe Job aus unserer Sicht schon erledigt war.
Grails ermöglicht eine Groovy-Fassade um diese bereits stabilen und gut etablierten Frameworks herum und fügt Features hinzu, um die bekannten Webentwicklungsmöglichkeiten zu vereinfachen. Schwierige Probleme können natürlich dennoch auftreten.
JM: Kürzlich wurde das Plug-in-System für Grails eingeführt. Wie wirkt sich dieses modulare Erweiterungssystem auf die Entwicklung von Grails aus?
Rocher: Ich bin fest davon überzeugt, dass es erheblichen Einfluss auf Grails und seine Zukunft haben wird. Einige der erfolgreichsten Open-Source-Projekte basieren auf offenen Extension Points (Eclipse, Firefox, Hibernate User Types, Spring etc.) und Grails bietet so viele Extension Points wie möglich.
Grails 0.4 ist erst seit wenigen Wochen auf dem Markt und wir haben schon ein halbes Dutzend Plug-ins (grails.org/Plugins), von denen die meisten innerhalb des Grails Plug-in SVN Repository auf svn.grails-plugins.codehaus.org gehostet werden sollen.
JM: Welche Schlüssel-Features sind für die nächsten Releases geplant?
Rocher: Bei 0.5 werden wir uns auf inkrementelle Überarbeitungen und einige wenige Schlüssel-Features konzentrieren, die wir für die Zukunft von Grails für essenziell erachten. Auch arbeiten wir daran, URL Mapping so flexibel wie möglich zu machen, und an zahlreichen anderen Verbesserungen für GORM.
Vorausschauend werden wir auch Support für die JSP Tag Libraries innerhalb von GSP und Support für das Java Persistence API (JPA) implementieren, um GORM in Konkurrenz zu anderen Persistenzanbietern nutzen zu können. Es kann allerdings gut sein, dass diese als Plug-ins implementiert werden und unser Hauptaugenmerk weiterhin auf inkrementellen Verbesserungen liegen wird, sodass Grails 1.0 so robust wie nur möglich sein wird.
JM: Vielen Dank für die Beantwortung der Fragen.
Die Fragen stellte Sven Haiges (Actionality Deutschland GmbH ).