Aller au contenu

Yet Another Entrepreneur Blog

Je suis Youen Chéné, fondateur de Webvert, contributeur à Boavizta, advisor au Bear Studio, 10ans+ bénévole à Codeurs en Seine.

Ici, je parle Web, Sobriété Numérique, Programmation, Entreprenariat, Domotique et Rétrogaming (Amiga).

Retrouvez ce blog sur Gemini

Catégorie: GWT

Retour d’expérience : 14 mois avec GWT

Voici un retour d'expérience de l'utilisation de GWT, des premiers maquettages à la mise en production. L'article est divisé en différents thèmes qui mettent en avant les avantages et les défauts du Google Web Toolkit.

GWT en quelques mots:

Vous programmez en java votre site web : c'est à dire l'affichage, les interactions, les échanges asynchrone avec le serveurs (AJAX).
Ensuite, le compilateur de google créé un fichier html par navigateur et par langue avec un le code java script optimisé.
Vous avez donc un site optimisé pour chaque navigateur sans se casser le tête sur du javascript.

GWT pour quoi faire :

Ce framework ajax est très adapté pour faire des applications webs (webapps) avec une interface riche. Les possibilité de construire une ergonomie adaptée à ses utilisateurs est donc possible sur un site web.

Par contre, GWT n'est pas adapté pour diffuser du contenu à référencer, en effet GWT génére du javascript et non du HTML lisible par les moteurs de recherches.

La productivité :

Pour le maquettage, le framework est moyen, il permet de faire des maquettes avec une gestion d'évènement pour se approcher au mieux de l'interface finale mais cela demande quand même un travail important.

La première partie du développement est assez lente, en effet il faut créer le socle du site, c'est à dire l'ensembles des interfaces des classes et des listeners qui structure le site.

La deuxième partie du développement est bien meilleure. Construire un site à partir d'un langage objet permet une réutilisation facile des composants. Cet effet commence à se faire sentir assez tôt.

La productivité de la maintenance et de l'évolution est encore meilleure, l'effet de levier de la réutilisation est réellement un avantage.

De plus, ces impressions correspondent aux différents retours de projets GWT exposés au Google Developer Day.

Les mythes autour de GWT :

La compatibilité entre navigateurs et les systèmes d'exploitation n'est pas total. D'une part il faut faire très attention à la partie CSS, d'autre part des petites choses ne fonctionneront pas de la même manière entre Internet Explorer et Firefox, les dernières version de GWT (1.5.x) corrigent beaucoups de petits problèmes ... mais ils en restent encore.

GWT n'est pas comparable à un framework web comme Ruby On Rails, il faut savoir que GWT ne recouvrent le même périmètre. GWT va du clique de l'utilisateur à un service "Ajax" sur le serveur; la gestion des régles métiers et de la persistence des données doit être implémentés à côté de GWT (en java avec du spring, ejb3, Ibatis, hibernate, ou en java ou en python (i.e. Ruby On Rails)). A titre de comparaison, Ruby On Rails va de la définition et le modèle de données à l'affichage du HTML sur la navigateur, mais il ne gèrent pas la couche javascript (interactions avancées avec l'utilisateur).

Un des reproches que l'on fait souvent à GWT, est le manque de contrôle et de lisibilité sur ce qui est généré (son concurrent Wicket est plus transparent à ce niveau). Il faut avouer que c'est le prix pour avoir du code optimisé par navigateur.

Pour finir, le déploiement est la partie qui pose le moins de problème avec GWT, il suffit de déposer les fichier html, javascript, css et les images sur le serveurs. La partie la plus compliquée, c'est l'exploitation de la partie serveur pour le traitement de la requête asynchrone et là ca dépend de la technologie adopté (java, php, python).

Ce qu'il manque encore à GWT :

(Si quelqu'un de google tombe sur cet article)

Un lazy loading (chargement différé) au niveau du chargement de l'application (le fichier html avec plein de javascript illisible dedans), car plus on ajoute de fonctionnalités plus le premier chargement est long pour l'utilisateur. Actuellement fermiers d'à côté est à 640ko avec un code où il y a une bonne marge d'optimisation.

Des widgets avancés stables (date picker, light box, color picker, etc..). Certains sont disponibles dans gwt-incubator, mais comme le nom l'indique ce n'est pas encore des versions finales. Il faut aussi noter que ceratins widget (un peu) complexe et inclus dans le framework de base ne sont pas encore très mature.

Une meilleur intégration des services google dans GWT car pour le moment ce n'est pas le cas. L'intégration de GoogleMap et Gears (gestion du offline) avance à grand pas mais pour les autres c'est plus compliqué (ou dela bidouille).

Une conseil pour finir :

Pour un maximum de productivité et de comptabilité avec les navigateurs, il faut coder au plus simple et éviter toute complexité inutile.
Une tactique est de contraindre le moins possible l'interface dans GWT pour en déléguer un maximum au fichier CSS : moins de code (le navigateur bosse à votre place), plus de maîtrise et plus de possibilité de construire des thèmes pour son application web.

Google Developer Day 2008 : rencontres autours du géant de l’internet

Ce matin, je me suis donc rendu au Google Developer Day en mode "à l'arrache" : malgré mon inscription tardive j'ai jamais eu la confirmation de l'inscription. Ayant passé ma dernière semaine à négocier ma journée avec mes collègues de Logica, j'ai tenté le coup malgré la distance. Google France a été gentil, je suis rentré avec la petite troupe qui étais dans mon cas.

Au final, ce fut une très bonne journée. D'un coté il y a les présentations :
  • Des petites nouveautés à utiliser sur Google Map (pour fermiers d'à côté).
  • Une session un peu brut de code sur les apis google data (même si à ma question "Can we use the data api with GWT ?" -avec un mon accent bien frenchy- on m'a répondu "You should ask the GWT team.".
  • Une session bondée et un peu tendu sur Gears (pour gérer les sites quand la connexion internet est perdu), mais à la hauteur de l'enjeu pour les applications hébergés/SaaS (le type de produits de ma société YS276).
  • Une dernière session où le québécois(?) de l'équipe GWT a fait face à une série de questions (pas toujours justifiées) sur le Google Web Toolkit. Cependant, le bilan est que l'on pas de vision sur la roadmap de GWT et sur l'intégration des apis google dans GWT.
Je n'ai pas insisté aux sessions sur Androïd (le système de Google pour les mobiles). Je regarderai sur Youtube plus tard. Au passage, à priori le mot d'ordre pour les Googlers étaient d'évoquer au moins une fois Chrome dans leurs discours, simple impression ou réalité?

Mais surtout, de l'autre coté, cette journée a été l'occasion de discuter avec les autres participants pour échanger sur nos expériences respectives. Pour ceux qui connaissent ce type de rencontre, il faut toujours donner de sa personne pour faire débuter les conversations.
J'ai même discuté avec quelqu'un qui fait un aller-retour par semaine entre un petit village de l'ariège et Paris. Je me sens petit joueur avec mes aller-retours rouen-paris maintenant.

De manière générale on sent que google a les moyens. On remarque aussi qu'ils ont une communication très rodé pour le web. C'est à dire qu'au lieu d'essayer d'enfermer l'utilisateur dans un écosystème fermé comme Microsoft, Sony et surtout Apple, ils jouent l'ouverture et essayent de conquérir les marchés sur un maximum de besoins avec les meilleurs outils ( et avec un petit manque cohérence, il faut bien le dire).

Pour conclure rapidement, le discours d'entrée était quand même un peu trop "corporate", l'accueil très bon, la moitié des googlers ont un mac, l'ouverture et la facilité d'accès de l'ensemble des participants est très agéable et quasiment tout le monde possède un iphone.
Pour l'anectode, j'ai notifié la remarque une personne qui avait un téléphone encore plus pourri que le mien et il m'a répondu "Ha mais non, en fait c'est un téléphone de remplacement, j'attends de recevoir mon iphone...". Ah la la, les technophiles.

Seul regret, j'ai vérifié trop tard la taille de mon T-Shirt Google... c'est du S... je vais avoir du mal à rentrer dedans.

Petite astuce pour GWT

Un des problèmes de GWT, c'est le temps de compilation (de 3 à 7 mn selon son humeur pour fermiers d'à coté) quand on souhaite tester le résultat en mode déployé sur un serveur d'application (i.e. Tomcat).

En suivant, les conseil de ce blog : How to speed tup the GWT compiler & How to speed up the GWT compiler II, j'ai réussi à passser à 1mn uniquement en ajoutant la ligne suivante à mon fichier MonModule.gwt.xml :
<set-property name="user.agent" value="gecko1_8"/>
Le projet est alors compilé uniquement pour firefox. Pour internet explorer il suffit de remplacer gecko1_8 par ie6.

Bien, sur il ne faut oublier de commenter la ligne pour la version de production.

Google Developer Day 2008 le 18 septembre sur paris

Une brève rapide pour signaler l'organisation des Google Developer Day 2008 sur Paris le jeudi 18 septembre.
Il parait que c'est très bonne occasion pour aller discuter avec les ingénieurs de google et d'en savoir plus sur les multiples projets de code.google.com (et en particulier sur GWT).

Pour les inscription c'est ici.

Et pour le souvenir les vidéos 2007 sont disponible sur ce channel Youtube.