22 mars 2008

Google Web Toolkit

J'ai (enfin) expérimenté sérieusement GWT. Je suis assez bluffé par ce framework.

Mes essais précédents en terme de technos JavaScript se sont tous terminé sur la conclusion : "il va falloir sacrément former les développeurs". Aussi riche que soit une librairie JavaScript, il faut déjà quelques notions pour s'y attaquer. Par ailleurs, tester du code JS, même avec jsUnit, reste un point délicat - surtout si on veut l'effectuer sur un serveur d'intégration continue (en mode console).

GWT a l'énorme avantage qu'on oublie vite qu'on fait en réalité du code JavaScript. J'ai ainsi pu apliquer une jolie décomposition MVC (voir sur le sujet http://blog.springsource.com/main/2008/02/19/enabling-test-driven-development-in-gwt-client-code) sans gros efforts.

Paradoxalement, c'est peut être la plus grande difficulté de GWT : ne pas oublier qu'on développe du code qui sera sur le client : pas de commons-* sous le coude, ni de bean Hibernate !

J'en ai profité pour revoir le plugin gwt pour maven du projet Mojo, qui était plus ou moins à l'abandon (le compilateur GWT ayant le mauvais gout de faire un System.exit() !). Je compte lui ajouter un outil de génération de DTO à partir de beans JPA/Hibernate, à utiliser avec hibernate4Gwt. Mais je ne promet rien, c'est juste un élément de plus dans ma todo-list ;-)

Pour ce qui est de la richesse visuelle des widgets, GWT-ext ou myGWT fournissent une base déjà très intéressante pour faire de jolies applications.