[jquery] Est-ce que GWT est toujours pertinent pour de nouveaux projets?


Answers

Bonne réponse de Steffen. J'ai commencé à le taper comme un commentaire à son, mais j'ai trouvé que j'ai tapé plus que ce que je m'attendais, ce qui en fait une réponse distincte. Ne pas chercher de points ...

Je voulais juste ajouter 1 point subjectif à moi. La réalité est que la majorité des développeurs sont des soi-disant développeurs backend sans connaissances, expérience et le plus important désir de développer une interface web. La réalité du marché IT américain est que la majorité préfère Java dans leur CV par rapport à JS, PHP, Python et d'autres langues exotiques. La raison en est la compensation. Les développeurs Java en moyenne sont mieux payés. Je ne suis pas sûr d'autres pays.

Donc la majorité des développeurs dans une entreprise seraient des développeurs Java (ou .NET, ce qui est en dehors de cette conversation). Afin de les faire fonctionner sur l'interface utilisateur, vous devez utiliser une technologie compatible Java, qui serait JSP ou GWT. JSP aurait besoin d'apprendre les bibliothèques JS pour rendre le frontend plus ou moins présentable.

Évidemment, si vous voulez impressionner le public avec une interface utilisateur unique, vous devez utiliser des bibliothèques JS qui permettent une plus grande personnalisation. Les deux JSP et GWT fonctionneraient comme la majorité du travail va être fait dans JS. Comme je l'ai mentionné ci-dessus, peu d'entreprises auraient connu des développeurs JS sur le personnel.

La majorité des applications sont cependant écrites pour un usage interne, et non pour le public. D'après ce que vous avez décrit, votre cas d'utilisation peut tomber dans cette catégorie.

Les outils internes non publics ont souvent une fonctionnalité plus complexe que les sites Web publics, mais leurs exigences de conception sont plus souples tant que la fonctionnalité est présente et pratique pour un usage interne.

Dans ce cas, vous pouvez vous en passer avec GWT, qui est moins étranger pour les développeurs Java que jQuery et une bibliothèque de haut niveau telle que GXT avec le thème standard.

GWT avec GXT pour nous était un moyen facile et rapide de créer un ensemble d'applications internes. Avec l'équipe de développeurs Java de notre société, nous ne nous approcherions jamais de la qualité ou même de l'exhaustivité des projets dans le même laps de temps.

Question

La question Pourquoi devrais-je utiliser jQuery au lieu de GWT? peut être périmé (comme ses réponses). Et la most of autres questions liées à SO peuvent également être dépassées de nos jours. Alors, mettons à jour l' état de l'art sur la pertinence de GWT pour les nouveaux projets.

GWT est plus mature de nos jours

Depuis 2009 questions / réponses, GWT a évolué et certains frameworks JS sont disponibles en Java:

  • GwtQuery pour jQuery (gQuery)
  • GXT pour ExtJS (anciennement ExtGWT)
  • Smart GWT a remplacé GWT-ext
  • ... et sûrement plus ... (n'hésitez pas à ajouter)

Et même plus, le code Java peut être converti en bibliothèques JS autonomes: gwt-exporter

Mais les frameworks JS de bas niveau peuvent suffire

Mais plus je lis, plus je vois des développeurs web conseiller de tourner le dos à GWT et utiliser directement les frameworks JS ( Firebug , plugins IDE pour les frameworks JS ...).

Productivité

Cependant j'aime l'idée de développer et de déboguer en utilisant le même IDE (Eclipse, Netbeans, IntelliJ IDEA ...). Je pense que je serai plus productif ... Je devrais aussi penser à Documentation et Communauté (réactivité du forum quant à cette question SO) ...

Des questions

  1. Pour quel genre de nouveau projet 2014 GWT devrait être (ou pas) considéré?
  2. Existe-t-il des alternatives pertinentes à GWT pour faciliter le développement et le déploiement d'applications Web AJAX?
  3. Quels sont le mode et la tendance actuels?

Mon cas spécifique

Je viens de terminer un POC (d'une application web intranet) basé sur des scripts bash Python3 ( http.server.HTTPServer ) appelant (POST) (un peu de traitement en C ++) et récupérant des données JSON. Certains JS (pas de cadre) dans la page Web pour le rendu. Je me demande donc la meilleure option pour la prochaine itération.

Mais s'il vous plaît répondez à cette question sur d'autres cas aussi. Je préférerais une question / réponse générale pour être utile à beaucoup plus de gens.

MISE À JOUR Octobre 2015

GWT semble moins actif car aucune nouvelle version depuis 11 mois. Mais dans le passé jusqu'à 13 mois entre les versions 2.4 et 2.5 . Le miroir de repo Git est toujours très actif. De plus, GWT est extensible et de nouvelles fonctionnalités peuvent venir des bibliothèques GWT sans nécessiter de nouvelle version de framework GWT. Voir par exemple les bibliothèques GWT mobiles les plus courantes et leurs cycles de publication correspondants. En attendant, la tendance est d'utiliser Node.js partout! L'adoption de GWT pour de nouveaux projets dépend vraiment des compétences / motivation des développeurs et de la durée de vie du projet (chiffre d'affaires / formation / maintenance). Certains autres critères tels que la réutilisation du code source disponible et le délai de mise sur le marché peuvent également être pris en compte ... Voir les réponses ci-dessous.




Je suppose que pour répondre au point 1, il faudrait voir quelle est votre situation actuelle et quels sont vos objectifs.

Si vous avez une équipe de développeurs qui ont utilisé Java la plupart de leurs carrières, vous pouvez probablement attendre 6 bons mois pour apprendre les paradigmes de JavaScript. Si vous avez de l'expérience dans des langues comme Groovy ou Clojure, vous pourriez probablement réduire ce temps. Donc, si vous ne vous attendez pas à ce que le projet dure plus d'un an, alors GWT serait probablement le chemin à parcourir.

Inversement, si vous avez une équipe de développeurs JS, ils peuvent trouver le système de frappe statique plutôt frustrant et apprendre à l'utiliser efficacement pourrait prendre une demi-année pour eux. Donc, si c'est le cas, alors vous ne voudrez probablement pas utiliser GWT pour tout nouveau projet où la courbe d'apprentissage l'emporte sur la productivité.

Je ne suis pas vraiment sûr de ce que le point 2 demande. Si vous posez des questions sur les frameworks de pile entiers, je suppose que vous pourriez trouver quelque chose en utilisant nodejs, bien que je ne pense pas avoir suffisamment d'expérience pour vous conseiller là-dessus.

Au point 3, où je travaille, nous semblons nous diriger vers l'utilisation de frameworks JS (AngularJS en particulier) avec quelques (nouveaux) serveurs / services écrits en Python et Groovy, et les systèmes hérités toujours en Java. Nous avons aussi quelques services écrits à Clojure.






Links