Mon avis sur Play!

David, comme je trouve ta question intéressante (et ma réponse encore plus), je vais la renvoyer sur mon blog.

Une ch’tite question : as-tu un retour d’XP sur le « framework » Play! http://www.playframework.org/

 

Tu le sais que tu devrais poser la question sur la ML Java (java@u-strasbg.fr) ? Bon, je l’ai pas encore utilisé, mais j’ai écouté l’épisode des castcodeurs à ce sujet, j’ai un peu regardé comment ça marchait sur le touilleur express et puis c’est pas la première fois que je vois des trucs du genre émerger …
é

Et, si tu devais le comparer à Grails et en faisant abstraction du langage (Java vs Groovy au moins pour la partie serveur) , quelle est ou quelles sont les différences majeures d’après toi ?

 

Alors ça c’est intéressant, parce qu’il y a un peu de groovy dans play (c’est le cas pour les templates de page, dont les parties dynamiques sont écrites en groovy – ce qui me paraît une bonne idée).
Contrairement à grails, play ne s’installe pas dans un conteneur J2EE classique, mais dispose du sien, c’est à mon sens un inconvénient en termes d’exploitation, mais je peux me tromper.
Ensuite, il inclut un compilateur, ce qui est un avantage, parce qu’il détecte (en mode dév) les changements fait dans les fichiers Java et recompile lui-même les classes, ce qui donne des messages d’erreur optimaux (au sens où dans ton message d’erreur tu auras la ligne dans le code source d’où elle vient). Bien sûr, quand la classe est recompilée à la volée, elle est rechargée dynamiquement et utilisée lors de la prochaine requête. Et ça, c’est possible parce que play est un framework stateless. c’est-à-dire que la session telle qu’elle existe dans une appli web J2EE n’existe pas ici. Bon, bien sûr, il y a une authentification à fournir, qui est stockée dans un cookie du navigateur. Ca veut dire que tu peux arrêter ton serveur Play, le relancer, et tu seras toujours connecté. Je n’ai pas besoin de te dire que c’est très pratique !
Bref, play est un framework visant la cible des applications vite et bien développées (comme par exemple l’express board sur lequel bosse le touilleur express). En quelque sorte, on pourrait dire (et bien des gens le disent) que play est une tentative du monde Java d’aller marcher sur les plate-bandes du monde PHP, mais avec tous nos avantages spécifiques (typage fort, énormes possibilités de connexion à l’informatique d’entreprise, …).

 

Evidement, ça n’est pas mon idée 😉

 

Pour moi, play! est un framework d’avant-garde. Je vais prendre une métaphore osée avec un mouvement artistique que je connais un peu, le cyberpunk. le cyberpunk fut, dans les années 80, un mouvement d’avant-garde pluridisciplinaire. Dans le champ de la littérature de science-fiction, il a donné des oeuvres comme câblé, neuromancien, et, dans une version tardive, Le samouraï virtuel. il s’est ensuite diffusé plus largement grâce en particulier à Matrix. Aujourd’hui, le courant d’avant-garde du cyberpunk peut être considéré comme mort; cependant, ses idées ont infusé une grande partie de l’art.
A mon avis, c’est ce qui va arriver à play. Il va rester un très bon framework très en pointe, mais ne va pas révolutionner le monde, seulement lui apporter de nouvelles idées (le côté stateless, la compilation à la volée, le mélange harmonieux Java/Groovy,…)

Merci d’avance 😉

Ben de rien, c’est toujours un plaisir de donné un avis mal éclairé 🙂

Publicités

Une réflexion sur “Mon avis sur Play!

  1. Petite correction, Play! peut etre deployer dans un servlet container sans probleme. C’est pas vraiment php, mais plutot Ruby on Rail ou encore Django.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s