Présentation de Play! Framework

Présentation de Play, un framework web qui est une implémentation de Ruby on Rails en Java/Scala.

Publié le

Pour finir le triptyque des présentations d’applications libres nouvelle génération en Java, je vais vous parler de ce drôle de projet.

Play (appelons le comme cela) est une implémentation de Ruby on Rails en Java (et en Scala pour la version 2), qui repose sur des standards très différents de ce que l’on trouve habituellement en Java. Et se sont de très bonnes idées.

Dans la boîte, vous avez un compilateur Java dynamique qui vous permet d’écrire votre code directement pendant l’exécution du serveur (comme en php ou en Rails), sans phase de compilation systématique, car elle se fait en arrière plan. Avec une poignée de fichiers et un peu de code, vous avec un blog minimaliste en 10 minutes, avec un simple éditeur de texte. C’est à la fois génial et perturbant, car vos habitudes en Java sont bousculés : par rapport aux servlets, jsp et autres Tomcat/Jboss, et notamment par la grande utilisation de fonctions et d’appels statiques. En effet, le principe repose sur une logique de déclaration statique basé sur l’introspection et les annotations : Play « devine » ce que vous voulez faire; pas besoin de lui faire de grandes déclarations.

Et sinon, Play est rapide, stable*, il intègre en lui un serveur web bien sur, et regorge de fonctions utiles comme un cron, un ORM pour une base SQL, un nettoyage des entrés client avec forçage de type, un client OAuth, un moteur d’envoi de mail avec templates… Bref, tout ce qui est classique dans ce domaine se trouve dans la boite.

Ce qui rends vraiment intéressant Play c’est avec l’accessibilité du php/rails/python, vous pouvez manipuler du vrai Java et pointer des jar. Le déploiement d’applications s’en retrouve simplifié : comme il n’y a plus de phases de compilation active à proprement dit, Play le fait à votre place, un simple déploiement de code suffit (via Git par exemple).

La version 1.x utilise Groovy en moteur de template, et Java pour l’applicatif. La nouvelle version 2.x est une ré-écriture totale en Scala et garde une compatibilité avec Java. Play peut aussi exporter en war votre projet pour une Servlet, tant qu’a faire.

Encore une fois pour un projet libre de cet envergure, la documentation est très complète, simple et lisible, à l’image de Play lui même. Et plus largement, vous trouverez une bonne communauté  en ligne sur Twitter et notamment francophone. En effet, Play est une initiative française, née chez Zenexity à Paris.

(*) Les sites LinkedIn, Klout, Coursera, The Guardian, ainsi que le site de Play lui même utilisent Play.

Mise à jour du 30/09/2013

Grace à la relecture de Michiel M. j’ai corrigé/complété les points sur les versions de Play, les sites qui l’utilisent, la compilation et sur Zenexity.