Batteries incluses
Outillage Java
C'est tout simplement génial:
- IDE: même si certains IDE prennent en charge JavaScript, le niveau de support n'est tout simplement pas comparable. Essayez de refactoriser le code JavaScript sur de grandes bases de code (disons, 40K + LOC) et pleurez.
- Tests unitaires: bien que cela ait repris au cours des dernières années, il est également beaucoup plus mature dans le monde Java.
- Intégration continue et inspection continue
- Génération de documentation: vous avez bien sûr JSDoc et quelques autres
Typage statique
Il détecte les bogues tôt. (Google Closure adresse cela un peu tout en gardant le développeur dans le monde JavaScript, si vous préférez).
JavaScript optimisé
GWT écrit du JavaScript plus rapide et plus compact que vous (pour les grandes applications) et vous permet de déterminer ce qui est envoyé au client sans doute plus facilement qu'avec des solutions JS complètes équivalentes.
Architecture
Il offre une bonne séparation des préoccupations pour les grandes applications, avec des architectures MVC ou MVP décentes déjà précuites au bout de vos doigts.
Bibliothèque décente
GWT fournit des bibliothèques intéressantes et facilite (enfin, plus facilement) la création d'applications compatibles I18N avec un chargement de bundle dynamique.
Tests unitaires
Utilisation de JUnit depuis Eclipse IDE et depuis la ligne de commande. Cela concerne mon premier point. Vous pourriez très bien également utiliser certains des outils de qualité de code Java sur un projet GWT (pour les vérifications de source, pas les vérifications de bytecode, car il n'y en a pas).
Tout dépend de vous!!
GWT n'est pas pour tout le monde. Cela rend certaines personnes plus productives et donne un bon outil aux développeurs non JS pour créer des applications Web professionnelles avec des frontaux dynamiques sans toucher (trop) à JavaScript. Mais si cela ne fonctionne pas pour vous, utilisez simplement autre chose.
Si vous voulez la plupart des éléments ci-dessus mais que vous ne voulez tout simplement pas Java, regardez peut-être Google Closure ou le Dojo Toolkit .
C'était une bonne idée à l'époque: l'histoire compte !!
Le monde JavaScript (et les technologies Web frontales en général) est extrêmement actif de nos jours, donc les choses s'améliorent. Mais il y a seulement quelques années, les choses n'étaient pas si brillantes. LESS / SASS n'était pas si populaire, jQuery n'était pas encore la bibliothèque JS de sortie d'usine, les bibliothèques JavaScript n'étaient pas générées toutes les deux semaines et l'outillage n'était pas génial en général.
Mais il y avait déjà une demande croissante pour des applications Web professionnelles et volumineuses avec des frontaux dynamiques, il y avait donc une lacune à combler pour rendre les développeurs plus productifs. JavaScript a de nombreux pièges et bizarreries dont vous devez être conscient, et il est peut-être préférable de ne même pas avoir à s'en soucier. D'où la niche des outils comme GWT.
Depuis, d'autres sont apparus (CoffeeScript me vient à l'esprit, Dart est en route, mais aussi de grands frameworks JavaScript, la révolution du JS côté serveur avec Node.JS et autres, et un retour en force pour JavaScript comme «assez bon» tout -langage à utiliser non seulement côté client mais également dans d'autres parties de votre pile métier.
Notes complémentaires
En ce qui concerne votre question originale (maintenant éditée) sur l'utilisation de Firebug
Vous pouvez déboguer du code GWT avec Firebug bien sûr, mais idéalement, vous devriez le déboguer directement à partir du débogueur de l'IDE Eclipse, qui fournit désormais une prise en charge du débogage de code en direct.
Cependant, Firebug est toujours utilisable, mais vous devez garder à l'esprit que GWT génère du JavaScript optimisé et compressé, ce qui peut ne pas être facile à déboguer tel quel.
Concernant votre question originale (maintenant éditée) sur CSS
Oui, vous devez toujours écrire le code CSS vous-même, bien sûr. Vous associez votre projet GWT à d'autres outils (comme SASS), plus ou moins facilement.
Ce n'est qu'un outil!
Ne confondez pas GWT avec ce qu'il n'est pas: vous n'écrivez pas de code Java à exécuter directement côté client en tant que bytecode Java. Vous écrivez du code dans le langage Java, qui est ensuite traduit en JavaScript pour plus d'efficacité et pour vous permettre d'utiliser un langage de niveau supérieur (ou, du moins, c'est ainsi que cela doit être vu).
Sans doute , Java et JavaScript pourraient être considérés comme comparables en termes de niveaux d'abstraction. Cependant, Java présente certains avantages (détaillés ci-dessus), d'où l'avantage de profiter des avantages des outils existants sans avoir à les réécrire. Les développeurs de Google ont juste eu la bonne idée de permettre de réutiliser les outils orientés Java existants, mais de développer en effet des applications JavaScript.
De plus, ils résolvent un autre problème, qui était la gestion souvent lourde des applications Web bilingues où le code JavaScript et Java était traité séparément. L'utilisation de GWT permet un certain niveau de convergence pour les deux côtés du processus de développement.
Lectures complémentaires: