20 janvier 2009

GXT ou pas ?

GXT (== ext-gwt) est une adaptation de EXTJs en GWT. Pas juste un wrapper, mais une reécriture. Donc a priori un truc super optimisé et qui s'intègre parfaitement dans la logique GWT.

Soucis, GXT est sous GPL et propose une licence payante pour les développements professionnels. Pour me faire une idée de cette librairie, je fait quelques tests et je tombe vite de haut :
  • la librairie utilise des concepts très riches (data binding) mais la documentation est bien pauvre
  • j'ai des soucis avec le positionnement qui m'obligent à passer des largeurs en dur, et pire que ça, en fonction du navigateur (voir le code source de l'exemple  AdvancedForm : GXT.isIE ? "100%" : "-20";
  • mes CheckBox ne définissent pas le "labelFor" qui permet de cliquer sur le texte pour les sélectionner.
Pour ce dernire problème, je passe par le forum GXT, et je me fait jetter car "c'est une demande d'évolution, passer par le forum payant dédié".

Autrement dit, GXT est opensource mais pas du tout ouvert à sa communauté "libre". Si le code est librement consultable, pour l'utiliser le passage à la caisse est quasi obligatoire.

Par ailleurs, même si les widgets sont très esthétiques, il est délicat de les "plier" pour entrer dans un design visuel prédéfini au détail prêt. Soit ça colle, soit faut tout refaire.

Bref, grosse déception. J'ai peur que GXT, entre le changement de license qui l'a coupé de sa base et cette politique "communauté payante" se coupe des développeurs, malgré des qualités évidentes...

4 commentaires:

Eric Taix a dit…

J'utilise de façon pro ce framework et voici quelques remarques sur l'article:

- Le DataBinding est très bien fait. Il est vrai qu'il est difficile de rentrer dedans (peu de documentation) mais étant donné que ce n'est pas un wrapper, il est aisé de suivre le code Java

- Le design (objet) du framework est excellent ! Un peu trop de classes paramétrables à mon goût, ce qui complexifie son utilisation (notamment au niveau des RPC Proxy).

- Le positionnement est excellent et nous n'avons jamais eu à faire ce que tu mentionnes (d'ailleurs j'ai regardé le code source de AdvancedForm et je n'ai rien trouvé de tel)

- Le forum est plutôt reactif (en tout cas sur les problèmes que nous avons eu) et nos questions étaient posées sur le forum communautaire (nous n'étions pas inscrits en tant que membre premium)

- Oui GXT est payant mais moins de 300€ / dév pour cette qualité et la réduction du coût de dév, je pense que le calcul est très vite fait.


Nous avons testé 3 framework du même type:
- GWTExt
- SmartGWT (celui qui est encouragé par la communauté GWTExt depuis qu'ils se sont rendu compte que GWTExt allait mourir du fait de ne pouvoir suivre les évolutions de ExtJs)
- GXT (anciennement ExtGWT)

Les 2ers sont des wrappers de JS. Autant dire qu'il est impossible de mettre le nez dedans si quelque chose se passe mal. SmartGWT est hyper mal fait (à mon gôût): des hacks de code de tous les cotés. On sent vraiment le coté lib JS derrière. GXT est vraiment bien: bien fait, de beaux composants, facilement extensible. Franchement un pur régal.

En tout cas que chacun se fasse son opinion en testant

Enzo a dit…

Franchement la version pseudo Open Source GXT est pleine de bugs : dés qu'on veut imbriquer différents types de Laouts plus rien ne marche... Bref une version gratuite inutilisable en entreprise.
Quant au design des Widgets GXT ils sont certes très jolis mais ni les Widgets ni les Layouts n'héritent des Widgets / Layouts GWT...
Bref bcp de perte de temps pour contourner les bugs de GXT ==> Il vaut mieux tout faire en GWT et se perdre une journée en fin de dev à pofiner sa CSS !!!

M. HOUDAS a dit…
Ce commentaire a été supprimé par son auteur.
M. HOUDAS a dit…

Nous utilisons GXT depuis plusieurs années, c'est un excellent produit qui améliore de façon important la productivité et permet d'avoir des IHM pro à un coût réduit. Il faut investir un peu pour rentrer dans le framework mais celui-ci est d'excellente qualité et évolue régulièrement par rapport à GWT.