Bonjour,
Ayant participé à plusieurs projets de développement d'applis web, et actuellement me consacrant à deux projets, l'un en PHP+JS+ExtJS et l'autre en JEE5+GWT+GXT je me pose une question vraiment conne :
Pourquoi utiliser GWT? A part le protocole propriétaire RPC sacrément utile si le backend est en JEE, je ne lui reconnais aucune valeur ajoutée... Pourquoi donner tant d'importance à un "toolkit" qui n'apporte finalement rien de nouveau ? La google touch peut être?
"GWT's mission is to radically improve the web experience for users by enabling developpers to use existing Java tools to build no-compromise AJAX for any modern brother"
1) En quoi ça peut bien importer les utilisateurs de savoir si l'appli qu'ils utilisent est faite en Java ou en JS?
2) Les outils Java existants ça veut dire quoi? Eclipse? Ant? Utilisant NetBeans pour coder en PHP et JS aussi bien que pour coder en JEE et GWT, je ne vois toujours pas de différence... Si ce n'est la tâche Ant que j'ai du créer pour pouvoir utiliser le OOPHM dans NetBeans, les projets créés avec l'utilitaire GWT étant plutôt faits pour Eclipse :/
3) Ecrire des RIA "sans compromis" pour tous les principaux navigateurs, ya déja un bon pacson de libs JS qui existent et qui permettent de s'abstraire de la plateforme cible ( ExtJS)
De plus, on retrouve toujours les mêmes arguments qui ne tiennent pas la route pour peu qu'on déjà utilisé de manière effective JavaScript pour une appli RIA :
* l'appli peut être codée intégralement en Java propageant les objets métier jusqu'au client
=> il faut que toutes les classes utilisées dans le code client soit déclarées dans des packages GWT (donc il faut disposer des sources). c'est très difficile par exemple d'utiliser des entités JPA pleines d'annotations dans le côté client de GWT
* des meilleures perfs, de l'optimisation de partout caylafayte
=> je demande à voir des benchs, les optimisations c'est surtout une version différente de l'app par browser et par bundle de langue... je pense qu'à moins de coder avec les pieds un code JS sera toujours plus court que son homologue Java statiquement typé lui même traduit en code JS
* ya une partie de l'API du JDK qui est émulée dans GWT
=> des conteneurs statiquement typés, pour la plupart inutiles avec les structures dynamiques de JS
* le hosted mode qui permet de débugger en direk !
=> avec le super moteur de rendu d'IE sous windows (on peut débugger en direct en JS)
* le OOPHM, le deferred loading (runAsync()), et autres killerapps de GWT 2.0
=> on arriverait à la productivité de JS si l'OOPHM n'était pas aussi lent (à chaque appel RPC, le bouzin recompile les classes des objets échangés et fait freezer le navigateur qqs secondes - on le voit d'ailleurs dans une vidéo Youtube d'un gus qui veut montrer que GWT2 caydelaballe), le deferred loading on le fait en JS en 3 lignes depuis toujours...
* GWT ca minimise le code pour réduire le temps de téléchargement de l'appli
=> jamais entendu parler de YUI Compressor?
Donc en gros, tout ce qu'on peut faire avec GWT on peut le faire avec JS (ça parait d'ailleurs logique vu la manière dont gwt fonctionne). Par contre avec GWT est-ce qu'on peut :
- Ajouter dynamiquement du code et modifier des structures de données pendant l'exécution de l'appli? (vachement pratique pour le debug)
- Mélanger les paradigmes dans l'écriture de son appli (impératif, OO, événementiel, fonctionnel) ?
Sans compter que les updates de GWT sont pas légions (ils annonçaient déja l'OOPHM l'hiver dernier), qu'on trouve beaucoup plus de ressources/de libs JavaScript sur la toile que pour GWT, et que les développements des dernières années de Google (GMail, Google Maps, ...) se sont toujours faits en JS (ah pardon j'oubliais Google Health !).
Bref le but n'est pas de faire un pamphlet anti GWT mais d'essayer de comprendre ce qui pousse les gens à aller vers cette techno qui objectivement n'apporte rien. L'effet de mode? La rigueur dans le dev qu'impose Java? Le RPC (contraignant, il faut que le backend soit en Java et c'est assez lent)? Tout simplement la peur du JavaScript?
Partager