Récemment, entre le livre blanc d'Aurélien Maury sur les Frameworks web haute productivité ou les critiques de Rod Johnson à propos de J2EE, la mode revient aux Frameworks lights. Je dis bien "revient", car ça fait déjà quelque temps que le développement web rapide existe et fait recette.
Quand à moi je suis attardé un petit peu sur Play!, le petit nouveau qui change tout.
Play! c'est un Framework français créé par Guillaume Bort et supporté par la société qu'il a créé Zenecity. En reprenant l'expression sur le site de Play! plus qu'un Framework, c'est une stack complète. Entendez par là que Play! c'est :
Eh bien pour faire simple, j'adore. J'avais fait pas mal de PHP à une époque et j'ai enfin retrouvé la souplesse et la rapidité de développement que j'avais alors. En effet il ne s'agit pas simplement d'un nième Framework web mais d'une stack complète (voir plus haut) qui vient avec sa propre vision de développement. Comme le dit le site : "un Framework de développement fait par des développeurs"
Un petit retour en arrière s'impose pour faire comprendre le parallèle. A une équipe j'ai fait pas mal de PHP comme beaucoup de développeurs débutants, séduits par sa simplicité, sa syntaxe proche du C (donc facilement abordable en sortie d'école). Je débutais, j'étais "mal habillé", entendez par là que je n'utilisais pas de Framework, pas de debugger, pas d'IDE. Et pourtant c'était très rapide à faire, parce que c'était simple.
Simple déjà par son débogage, l'erreur était immédiatement affiché sur la page web
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /servers/apache/sites/ddb/kb/fct_kb.php on line 260
avec le numéro de ligne etc...
Simple ensuite parce que relancer un serveur apache :
Simple parce qu'on était très proche du web, si vous aviez compris l'utilisation des variables réservées $_GET, $_POST, $_REQUEST, $_SESSION et $_COOKIE vous aviez presque tout compris aux grands principes de l'HTTP (ok je simplifie ^^).
En gros, on passait de l'éditeur au navigateur, un F5 et on testait.
Bon d'accord, mais il y avait quand même des points noirs faut pas le cacher :
Eh bien Play! c'est un ensemble de ces avantages, sans les inconvénients ;)
Que ce soit pour la compilation :
(image issue de la doc Play!)
L'insertion de données :
(image issue de la doc Play!)
Le cycle de développement consiste toujours à coder puis switcher vers le navigateur.
Eh bien ils ont disparu :
D'un point de vue technique, je suis pour l'instant débutant en Play! A première vue c'est concis, rapide à développer etc...
Mais, je n'ai pas encore testé des choses très importantes :
Enfin ce sont des interrogations donc « Wait and see ».
Ensuite Play! peut être perturbant sur certains principes :
Et puis sinon, dans les inconvénients : ce n'est pas du J2EE Bon ok je viens de dire que c'était super bien que ce ne soit pas du J2EE, c'est simple, concis, efficace etc... Oui mais du coup on perd quelques outils qui étaient présents uniquement sur J2EE (les filtres Spring Security par exemple). On se coupe d'une partie des outils déjà créé, donc il faudra les recréer ou attendre qu'il le soit.
Et là ça me permet d'aborder le principal point noir de Play!, sa communauté. Play! étant très jeune, la communauté est très limité, les outils et modules sont essentiellement issus de l'équipe de Play! La richesse d'un Framework c'est son écosystème, et celui-ci est encore assez limité ce qui rend son choix un peu culotté pour l'instant. Et puis même si le technical lead Guillaume Bort est très actif aujourd'hui, qu'en sera-t-il demain s'il abandonne sa société Zenecity ? Quelle est la pérennité de ce Framework franco-francais et de la société Zenecity qui se trouve derrière ?
J'adhère aux principes de simplicité mis en avant par ces Frameworks "haute productivité". Après avoir bossé (et bosser encore) sur des logiciels usines à gaz, après avoir vu des fichiers de 75 000 lignes de code (véridique !!), des couches d'abstraction à n'en plus finir pour envoyer un simple entier d'une fonction à l'autre etc... je tente de coller le plus possible au principe : Keep it simple. Donc oui, Play! j'adhère et je compte jouer encore un peu avec, au moins en extra professionnel. En espérant qu'il gagne un écosystème suffisamment pérenne pour le proposer en milieu professionnel.