Nous n'avons pas essayé de coller aux sacro-saints « standard J2EE entreprise », mais nous nous sommes plutôt demandé : « comment simplifier le développement d'application Web avec Java, d'ordinaire si lourd ? »
Nous sommes arrivés à un framework Java MVC simple avec quelques spécificités :
- Play! travaille directement avec les fichiers sources (.java) et non avec des classes compilées (.class). Les phases de compilation et de déploiement sont donc inexistantes ce qui simplifie réellement le cycle de développement ;
- Le framework n'utilise pas l'API Servlet. À la place nous avons utilisé un framework HTTP asynchrone basé sur mina (http://mina.apache.org). D'une part l'API est plus agréable à utiliser que l'API Servlet car elle donne directement accès à la pile HTTP, d'autre part, en terme de performances cela permet au moteur de traiter plus de requêtes avec moins de thread, donc de mieux utiliser les ressources ;
- Les rapports d'erreur essaient d'être le plus précis possible. À la place des traditionnelles StackTrace Java illisibles, Play! affiche directement l'erreur avec le code source associé et la ligne incriminée ;
- Un modèle entièrement Stateless (sans état sur le serveur) qui convient bien mieux au Web et permet par exemple de gérer plus simplement les traditionnels problèmes de boutons Back ou Refresh... En outre, cela permet de distribuer une application Play! sur plusieurs JVM ou plusieurs serveurs de manière naturelle ;
La version courante n'est pas encore finale mais largement assez stable pour créer de vraies applications et les mettre en production. Le tutoriel vous permettra de vous faire rapidement une idée de ce qu'est une application Play!