Play! est un framework Java orienté Web créé par Guillaume Bort en 2007, il permet de créer des applications web avec Java et Scala : RESTful par défaut, incluant des compilateurs d'assets, le support de JSON et des WebSocket.
Le principe de Play! est de réduire la durée du cycle de développement Java, ainsi que limiter la complexité applicative souvent associée aux projets Java. On y trouvera donc la transposition en Java des concepts principaux de frameworks tel que RoR, Django ou encore Symfony : MVC, Convention over Configuration, Don't Repeat Yourself.... Play! dispose également de son propre gestionnaire technique de projets, permettant la création des interfaces CRUD, et de son propre serveur d'application (même s'il peut se déployer facilement dans un Tomcat), ce qui lui permet par exemple le rechargement transparent et à chaud du code modifié.
Play! est distribué sous licence Apache 2. La société Zenexity contribue au projet et réalise le développement et le support sur le produit.
La version 2 se libère d’Hibernate et utilise des librairies plus adaptées au mode stateless du framework (Ebean/Anorm), rajoute une gestion des formulaires, et surtout se sépare de Groovy pour le templating pour utiliser un moteur reposant sur Scala.
Play! est écrit en Java et Scala, le gestionnaire de projets en Python.
“ Incroyablement efficace pour des développements rapides. La version 2 est un peu lourde par contre. Le plus intéressant: tout se recharge dynamiquement a la volée. Une modification dans un objet jpa sera prise en compte immédiatement, y compris par un update de la base de données. ”