
Nach vier Release Canidates wurde am 18. März die Version 2.0 des Play Frameworks in Verbindung mit dem Typesafe Stack 2.0 veröffentlicht. Der Sprung von Version 1.x auf 2.x ist groß, größer als ich erwartet hatte. Viele Entwickler die (wie ich) den Einstieg in Play mit der Version 1.x begonnen haben werden sich an einigen Stellen fragen, ob sie noch das gleiche Framework benutzen. Play2 wurde von Grund auf neu implementiert. Eine der wichtigsten Änderungen ist deshalb, dass das komplette Framework nicht mehr auf Java, sondern auf Scala basiert. Gleichzeitig lassen sich nun entweder Java- oder Scala-basierte Applikationen erstellen. Letzteres war zwar bereits seit Version 1.1 möglich, allerdings musste man dafür ein zusätzliches Modul einbinden.
Der für mich größte Wechsel ist im Bereich der Persistenz vollzogen worden. Hatte ich mich gerade an JPA in Play1 gewöhnt, so wird in Play2 auf Ebean als OR-Mapper gesetzt. Man kann zwar weiterhin JPA benutzen, allerdings muss dies vollständig manuell konfiguriert werden (XML lässt grüßen; womit man eigentlich wieder beim J2EE-Stack ist). Ich habe mich noch zu wenig mit Ebean beschäftigt, aber die Annotation scheinen nahezu 1:1 kompatibel mit denen bei JPA zu sein. Einzig allein die Queries erscheinen mir zwar flexibler, aber nicht ganz so selbsterklärend wie bei JPA.
Ebenfalls eine große Änderung gab es im Bereich der Template-Engine. In Play1 wurde auf Groovy-Templates gesetzt. Dies wurden vollständig (primär aus Performancegründen) durch eine Scala-Template-Engine ersetzt. Glaubt man den Entwickler, benötigt man nur wenig Zeit um sich die Groovy-Template-Engine von Play1 anzusehen (kann ich bestätigen). Genauso wenig Zeit benötigt man um sich die Scala-Template-Engine anzusehen. In einem halben Tag sollte man also genauso gut mit Scala-Templates arbeiten können, wie zuvor mit den Groovy-Templates. Wer sich nicht von seinen Groovy-Templates trennen kann (oder möchte), dem empfehle ich das Modul Faster-Groovy-Templates. Diese Erweiterung beschleunigt nicht nur das Rendern der Templates in Play1, sondern ermöglicht auch die Verwendung der Groovy-Templates in Play2.
Es gibt noch eine ganze Reihe weiterer Änderungen in Play2. Hierzu empfehle ich die Präsentation von Peter Hilten auf der Jfokus 2012.
Auch wenn die Entwickler nach wie vor betonen, dass Java weiter als nativer Bestandteil im Framework erhalten bleiben wird, sagt mir mein Bauchgefühl das der Java-Zweig früher oder später abgeschnitten wird. Der Sog richtig Scala, insbesondere durch die Integration in Typesafe, ist hier IMHO sehr hoch. Ich hoffe natürlich, dass mein Bauchgefühl mich hier täuscht und freue mich auf erste Play2 Applikationen. Und für mich bleibt Play eines der effizientesten und leistungsstärksten Web-Frameworks.
Bild: www.playframework.org