Il n'y a pas de réponses simples à ces questions :
J'essaie de dire pourquoi nous devrions utiliser gwt et pas un autre framework ? Qu'est-ce que y a-t-il dans GWT qui le rende spécial pour le développement d'applications web ? Qu'est-ce que GWT fait pour nous et qu'un autre cadre ou boîte à outils ne font pas ??
Il n'y a pas de solution miracle. Tout dépend du projet et des exigences. GWT peut être bon dans un projet et d'autres frameworks peuvent être bons dans d'autres projets. Cela dépend également des autres frameworks qui sont pris en compte.
À mon avis, l'élément le plus significatif qui rend GWT différent de presque tous les autres frameworks web Java est que le côté client est entièrement en JavaScript alors que la plupart des autres frameworks génèrent habituellement du code HTML simple. L'approche JavaScript du client a ses avantages, pour n'en citer que quelques-uns :
- il est entièrement AJAX, ce qui crée une excellente expérience pour l'utilisateur,
- L'état des vues est géré dans le navigateur,
- il communique avec le serveur de manière asynchrone ;
- il communique avec le serveur uniquement pour obtenir les données.
Cependant, il y a aussi quelques inconvénients :
- la prise en charge de l'historique du navigateur - elle n'est pas aussi bonne que dans les cadres basés sur HTML ; l'utilisation correcte du mécanisme d'historique n'est pas facile et exige un effort supplémentaire de la part des développeurs ;
- ne sont pas adaptées au référencement ;
- les mises en page plus compliquées risquent d'épuiser les navigateurs web - il faut parfois beaucoup de temps pour générer une page, surtout si l'on utilise des bibliothèques de composants supplémentaires ;
Pour les développeurs, il est très important que GWT leur cache JS. Vous écrivez en Java et vous obtenez une application client basée sur AJAX entièrement fonctionnelle en JS, généralement sans toucher une seule ligne de JS. C'est génial surtout lorsque vous avez besoin de beaucoup d'AJAX dans votre application et que vous ne connaissez pas JS. Ceci est spécifique à GWT - utiliser JS et AJAX dans d'autres frameworks n'est généralement pas aussi facile (Vaadin peut être une exception mais il est basé sur GWT).
Il est intéressant de mentionner que dans de nombreux cas, GWT peut être combiné avec d'autres frameworks web - de cette façon, vous pouvez avoir la plupart du contenu de votre application créé dans des frameworks basés sur HTML et certaines parties AJAX plus compliquées dans GWT.