Choisir entre GWT et FLEX
Par dgirard le lundi, mars 16 2009, 12:36 - Lien permanent
Gaetan Zoritchak
Lors du développement d'une nouvelle application RIA, FLEX ou GWT s'avèrent être deux solutions pertinentes. Après avoir utilisé ces deux frameworks dans des projets complexes, ITIntegrans propose une synthèse de leurs points forts.
A lire.
Commentaires
J'ai utilisé GWT pendant 10 mois sur un gros projet et actuellement j'utilise Flex depuis 3 mois sur ce même projet.
Pour la productivité je ne suis pas en accord avec l'article et la note - pour flex pour les grands projets me semble mauvaise et je mettrais plutôt un + (voir même ++).
En terme de support et maintenance je mettrais la même note voir même un avantage pour Flex (la communauté Flex est tout autant développée que celle de GWT et la documentation mieux fournit ce qui selon moi donnerait un avantage pour flex).
Facilité d'apprentissage : là je m'appuie sur l'expérience de notre équipe, nous somme rentré dans flex à une vitesse tout simplement incroyable et (honnêtement l'actionscript c'est super simple alors si un développeur java n'y arrive pas il faut se poser des questions ;-P). Le MXML permettant de décrire l'UI en flex est simple et la re lecture du code mxml fait qu'a l'oeil nue on "voit" le résultat que ça va faire, en GWT c'est moins évident.
Donc en facilité d'apprentissage, selon moi, pour la note ce devrait être ++ pour flex et + pour GWT.
Pour la pérennité : ++ pour GWT me semble un peu exagéré, je pense qu'aujourd'hui on peut mettre la même note (+) aux deux solutions.
J'utilise AS3/Flex depuis 2ans, et j'ai un peu roulé ma bosse avec GWT, je trouve certes Flex très sympathique, notamment le mixe entre la notation XML et le scripting, mais au final, une fois sortie des exemple classique, le tout s'avère relativement complexe. AS3 mine de rien n'est pas si simple, il est bourré de fonctionnalité, idem pour Flex qui est très riche et pas si évident que cela à bien maitriser. En fait c'est la fausse apparence de simplicité que je tiens à souligner. Sinon je trouve quand même dommage de devoir s'appuyer au final sur flash qui il faut l'avouer quand il s'agit d'afficher des tableaux un peu costaux est vraiment poussif comparé au rendu HTML équivalent. Quoi qu'il en soit, je préfère quand même AS3/Flex à GWT : coder des interface en Java est vraiment tout ce qu'il y a de plus rébarbatif.
Quelques points pour étayer nos évaluations:
Productivité:
Je suis d'accord avec la très grande vitesse pour démarrer un projet sous Flex. Les problèmes arrivent généralement plus tard avec la structuration du code.
Je suis peut-être un Ayatollah du refactoring (et d'Intellij Idea) mais quand on arrive sur FlexBuilder et qu'on se retrouve avec un outil d'édition de code proche de JBuilder en version 3.5 (début du millénaire pour ceux qui se souviennent) la frustration est énorme. Certes, l'édition WYSIWIG des interfaces est sympathique mais il reste pas mal de code à faire à la main. Pour la définition des interfaces cela reste toutefois bien meilleur que ce que l'on trouve en GWT puisqu'il faut tout coder à la main.
AS3: C'est simple à première vue. Il reste qu'avec un langage dynamique et peu typé il faut être très rigoureux. La syntaxe peut s'avérer concise (E4X par exemple) mais cela ne la rend pas forcément plus facile à mettre en place.
Notre principal reproche vient surtout de l'outillage qui n'est pas à la hauteur (l'équivalent de ce qu'on trouve pour coder sous iPhone :( ) et Adobe qui a l'habitude de fournir des outils orientés développeur web ne semble pas en mesure de monter la marche et de rejoindre le niveau des outils sous java.
Le meilleur des 2 mondes serait de coder en java pour le player flash avec le même mécanisme de conversion que celui proposé par GWT.
Entièrement d'accord pour le refactoring avec flex builder et c'est un problème qui m'agace beaucoup (amélioration avec flex builder 4 qui doit sortir au premier semestre 2009 ?).
Par contre je déteste écrire du javascript mais étonnamment je me suis senti à l'aise avec l'AS3 (qui ne ressemble au bidouillage perpétuel en javascript sur les navigateurs).
Article intéressant.
Je me permettrais toutefois de remettre en cause le "++" de robustesse de Flex (du Flash Player en fait) qui ne bénéficie pas d'un gestionnaire d'erreur global permettant d'intercepter toute exception non gérée (http://bugs.adobe.com/jira/browse/F...).
En cas d'occurrence d'une telle exception, le comportement de l'application devient tout simplement non prédictif et aucun élément ne permet d'informer l'utilisateur qu'il vaut mieux la relancer. Un peu gênant pour des applications professionnelles.
Enfin, les performances de Flex sont liées à l'utilisation du protocole AMF qui nécessite une surcouche côté serveur (BlazeDS, GraniteDS, etc.). Les performances obtenues dépendent énormement du protocole utilisé comme le démontre parfaitement le comparatif de performances publié par James Ward : http://www.jamesward.org/census/.