| Fiche d’identité | |
|---|---|
| Nom du produit | Google Web Toolkit (GWT) |
| Langage | Java |
| Site de référence | http://code.google.com/webtoolkit/ |
| Auteur | Google via Google Code |
| Licence | Apache 2.0 depuis la version 1.3 |
| Première version | 1.0.20 en mai 2006 |
| Version étudiée | 1.4.61 |
| Compatibilité avec les navigateurs | Firefox 1+, Internet Explorer 6+, Opera 9.x, Safari 2.0.x |
Google Web Toolkit (GWT) est un framework de développement d’applications Ajax (donc JavaScript) en ... Java. Il aide le développeur à monter rapidement et plus facilement une application riche sans avoir à se soucier ni de la compatibilité entre les navigateurs ni des contraintes imputées aux CSS et au HTML.
GWT est régi sous licence libre (Apache 2.0) depuis sa version 1.2 ce qui a favorisé son développement ainsi que celle de composants additionnels comme des widgets ou de nouvelles API.
GWT est également employé par Google pour la création de Google Gears et de Google Reader, entre autre.
Applications Web
Autant mettre les points sur les « i » immédiatement : GWT n’est pas comme les librairies classiques de type jQuery, YUI ou encore Ext JS. Il ne s’intègre pas dans des pages HTML existantes, car ce n’est pas du JavaScript.
GWT permet de bâtir des applications JavaScript de toutes pièces, en programmant en Java. GWT s’utilise pour monter des projets de type Gmail, Google Reader ou encore iGoogle : des applications Web au sens strict du terme.
En contrepartie, cette approche du développement d’applications dynamiques se fait au détriment de l’accessibilité, JavaScript étant la clé de voute de l’applicatif généré par GWT.
Du Java au JavaScript
Cette traduction du Java au JavaScript peut sembler un peu magique, dans la mesure où ces deux langages n’ont de point commun qu’une partie du nom :
Et pourtant, GWT ne se contente pas d’une simple traduction, puisqu’il est un compilateur. De ce fait, il traite, optimise et découpe chaque portion de code afin qu’elle soit la plus optimisée possible lors d’un rendu Web.
GWT libère le développeur Web « classique » de son cycle de développement et de tests en offrant un déboguage en temps réel (le « mode Hosted »), avant de produire la moindre ligne de code interprétable par un navigateur Web (le « mode Web »)
Une véritable boîte à outils
Programmer en Java pour éviter le JavaScript c’est une chose, mais programmer efficacement en Java pour en faire du JavaScript en est une autre.
GWT fournit à ce titre de nombreux outils facilitant la création d’interfaces riches et modulaires :
GWT fournit également les outils nécessaires à la création de ses propres widgets grâce aux objets composites. Le code étant fortement orienté objet, réutilisation du code et motifs de conception, les développeurs Java ne seront pas dépaysés lors de la création de leurs propres outils, réutilisables d’un projet sur l’autre.
Open Source et modulaire
Open Source depuis sa version 1.2, Google Web Toolkit tente le pari du multi-plateformes, puisqu’il fonctionne aussi bien sous Windows que sous MacOS X (avec quelques difficultés sur Léopard) et Linux. Le rendu graphique du serveur GWT est assuré par GTK et le rendu Web par Gecko, derrière Firefox, Flock et feu Netscape.
Cette bonne nouvelle est complétée par le fait que n’importe quel éditeur de code suffit ; éditeur ou IDE d’ailleurs. GWT facilite toutefois l’intégration dans Eclipse avec la création de projets prêts à importer. Il existe également un designer GWT totalement visuel sous forme de greffon Eclipse ... mais payant.
Nous en parlions un peu plus haut mais les fonctionnalités standard de GWT peuvent être étendues avec de nouveaux widgets et de nouvelles API. Celles-ci peuvent être déterminantes dans la conduite et la mise en place de certains projets avec, par exemple, l’ajout d’une couche sonore dans les applications, l’encapsulation de librairies JavaScript tierces (de type jQuery ou YUI) ou de services tiers (Google Maps etc.).
Toutes ces facilités aident à prendre en considération GWT comme choix de fondation pour le développement d’une application Web.
Compatibilité et optimisations
Un choix qui peut également se faire par rapport à la compatibilité des navigateurs, dans la mesure où GWT affranchit le développeur des limitations ou des différences d’interprétation des différents navigateurs Web du marché.
Google Web Toolkit fait en sorte que chaque navigateur ne reçoive que du code qu’il arrivera à interpréter mais aussi que du code qu’il aura à interpréter. Un peu à la manière du prefetch, il n’offrira à télécharger au navigateur que les parties de JavaScript nécessaires au fonctionnement de le page, en fonction des interactions de l’utilisateur.
Outre cette couche de compatibilité, le framework offre des fonctionnalités poussées d’optimisation pour :
Cette considération pour l’utilisateur et les performances est déterminante pour la conduite de projets volumineux, lourds et potentiellement consommateurs en ressources. Ce sont autant de contraintes dont les développeurs n’ont plus ou peu à se soucier.
Malgré le manque de communication à son égard, Google Web Toolkit a pris totalement à contre-pied les librairies classiques de développement JavaScript en masquant tous les éléments susceptibles de poser problème à savoir :
Sans remplacer l’expertise d’un développeur JavaScript, GWT facilite toutefois la création d’applications Ajax pures puisqu’il est souvent plus facile de recruter un développeur Java qu’un développeur JavaScript.
Il faut toutefois avoir pleinement conscience que si intervention il y a, ce sera sur la partie Java et certainement pas sur le code HTML, CSS et JavaScript généré par le compilateur.
GWT est donc adapté aux projets de moyenne et de grande ampleur, utilise un langage connu (et reconnu), et peut potentiellement raccourcir la durée d’un projet complexe. Autant d’arguments qui jouent en sa faveur et méritent de le considérer sérieusement.
| Forces | Faiblesses |
|---|---|
|
|
| Opportunités | Menaces |
|
|