Pertinence de GWT en milieu industriel

Afin de répondre à certains clients dubitatifs, j’ai récemment eu à développer un argumentaire rassurant quant à l’utilisation de GWT pour des projets industriels. Quelques uns d’entre eux avaient reçu peu avant une formation GWT, et bien que réticents au départ, ils ont vite été convaincus de la qualité de cet outil et de sa capacité à améliorer la productivité.

Compatibilité multi-navigateurs

Les clients soulèvent souvent le problème suivant : lors de la sortie d’une nouvelle version d’un navigateur, est-il nécessaire de recompiler leur application ? Deux cas peuvent se présenter :

  • En premier lieu, examinons la pire des situations : les APIs JavaScript sont « cassées » par la nouvelle mouture. Dans ce cas-là, il est évident qu’une recompilation de l’application est nécessaire. Qui plus est, il faudra attendre qu’une version du SDK de GWT prenne en compte les nouvelles APIs du navigateur.
  • Les développeurs de navigateurs ayant généralement comme première priorité de conserver une compatibilité descendante entre leurs différentes versions, ce cas est extrêmement rare (personnellement, je n’y ai jamais été confronté). A titre d’exemple, dans le cadre du développement de notre application (programme de gestion de subventions pour agriculteurs) et qui utilise des fonctionnalités avancées de GXT, le navigateur IE 10 est sorti, sans prise en charge spécifique de la part de GWT. Notre application fonctionne parfaitement sur ce nouveau navigateur : nous n’avons pas eu à la recompiler spécifiquement pour cette plateforme d’exécution.

Pertinence de l’utilisation de GWT sur des applications orientées formulaires


Notre client avait pour objectif de refactoriser des applications essentiellement orientées formulaire. Il pensait qu’utiliser GWT dans ce cas serait comme utiliser un marteau pour écraser une mouche. Voici ma réponse : GWT offre la possibilité de vous approprier à 100% toutes les innovations techniques disponibles dans les navigateurs modernes, ainsi il peut sembler superflu au premier abord d’utiliser cette technologie pour créer de simples formulaires. Cependant, si on approfondit cette analyse, il n’y a plus de doute : GWT utilise le langage Java. Vous aurez donc la possibilité de partager du code entre l’application cliente et votre back-end Java. Ainsi, dans le cadre d’un simple formulaire, le code de contrôle des champs peut être partagé entre le serveur et le client.

Par exemple, en cas de contrôles croisés spécifiques sur plusieurs champs, GWT vous permettra de n’écrire qu’un seul code (contrairement à l’usage de JSF qui vous obligera soit à coder vos contrôles côté serveur en Java et JavaScript pour le client, soit à utiliser des composants JSF spécifiques), d’où un gain de productivité conséquent pour les développeurs. Et d’ajouter que la programmation des écrans peut se faire en XML avec UiBinder, ce qui sera, pour un développeur habitué à coder pour JSF ou Struts, un moyen de passer à une technologie beaucoup plus puissante tout en conservant des paradigmes de programmation similaires.

Enfin, posons nous également la question de savoir si  une application ne se compose que de simples formulaires du fait du besoin client, ou bien parce que la technologie utilisée pour développer cette application limite les possibilités offertes aux utilisateurs.

Pérennité de la technologie GWT

Troisième point et non des moindres, nos clients hésitent généralement à utiliser GWT car ils ont des doutes sur son futur. Bien que la technologie soit conçue et maintenue par le géant Google, la communication à ce sujet est assez déplorable. Certaines rumeurs argumentent notamment que le langage Dart supplantera à terme GWT. Il s’agit là d’une confusion immense : en effet, mis à part la nature plus « typée » du langage Dart qui le fait percevoir comme un concurrent de Java, il n’y a aucune intersection entre Dart et GWT. GWT ne se résume pas à un langage, c’est une technologie à part entière : optimisation des ressources réseau, compilation ultra performante, prise en charge multi-navigateurs,  internationalisation, etc. Tout ceci n’a pas trait au langage utilisé mais est un ensemble d’outils permettant au développeur d’avoir une productivité à développer des applications Web semblable au développement d’application lourdes.

D’autres rumeurs prétendent que GWT sera supplanté par des frameworks JavaScript comme Angular.js (qui fait le buzz depuis plusieurs semaines), Backbone.js et j’en passe. Je m’en remets au jugement du Chef de Projet afin de déterminer s’il est préférable pour son équipe de connaître / d’être expert en JavaScript et de savoirmaintenir une base de code JavaScript en plus du code Java côté serveur. GWT est une technologie de qualité, mature, utilisée sur des produits industriels depuis presque 10 ans, maintenue à la fois par un comité de pilotage orchestré par Google et par la communauté Open Source. La récente réorganisation du comité de pilotage ne s’est pas faite par Google dans l’objectif d’abandonner la technologie, mais au contraire dans l’idée d’inviter les contributeurs majeurs « third-party » à venir participer à l’amélioration du framework et à garantir sa pérennité. Ce comité se compose entre autres de membres issus de Google, de RedHat, de GXT (anciennement Sensha), de Vaadin, ArcBees, ainsi que de JetBrains. Sans parler de l’immense écosystème Open Source gravitant autour de la technologie.

Je trouve dommage que Google laisse courir ces rumeurs, sans offrir de communication officielle. J’espère que vous serez malgré tout conquis par cette technologie très innovante, au futur plus que certain, vous permettant d’exploiter les technologies Web dans toutes les possibilités qu’elles vous offrent. De nombreux clients grands comptes ont déjà fait le pas, et n’ont jamais été déçus !

Pour en savoir plus sur GWT, voici quelques liens que j’ai sélectionnés :

History And Future of GWT, présenté au Google I/O 2012

Projets Google utilisant GWT

Future of GWT 2.5

117 entreprises utilisant GWT

NB : A l’heure où j’écris ces pages, les résultats du sondage organisé par le comité de pilotage de GWT viennent d’être publiés. Très complets, ils donnent à penser que le futur de GWT est toujours très prometteur. https://vaadin.com/blog/-/blogs/the-future-of-gwt-report-2012

Share
Arnaud TOURNIER

1193

Comments

  1. La validation en JSF est-elle si complexe que ça ? Ce framework gère depuis plusieurs années déjà la validation par annotations. Permettant ainsi la définition de la validation directement sur des pojos ou entités hibernate. Cette fonctionnalité est présente depuis 2008 dans JSF 1.2 avec Seam 2 et Richfaces 3.

    JSF permet également de ne pas utiliser du code javaScript, avec le framework Ajax4JSF. Ce permet d’avoir une approche composants et facilite le réfactoring.

    Pour tout ce qui est intégration JQuery et JSF, cela est totalement transparent avec les dernières versions de Richfaces et Primefaces. Primefaces est d’ailleurs constitué principalement de composant issues du projet JQuery UI (reprenant donc les mêmes mécanismes pour charter les composants). Richfaces apporte également une encapsulation de JQuery pour avoir une logique composant avec les interactions de JQuery.

    JSF reste encore de nos jours l’un des framework les plus aboutis et productif du monde Java, à condition de le coupler avec Seam et non Spring.

    http://www.primefaces.org/showcase-labs/ui/home.jsf
    http://showcase.richfaces.org/

  2. It’s nearly impossible to find well-informed people about this subject, however, you seem like you
    know what you’re talking about! Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *