L'avenir du développement du GUI en Java? [fermé]

en Considérant que

  • Sun / Oracle a décidé de ne pas développer Swing après avoir" inventé " JavaFX
  • JavaFX ne fonctionne pas vraiment et certains considèrent que c'est déjà un échec
  • LA NATURE pas vraiment indépendante de la plate-forme de SWT, la tâche manuelle de disposer des éléments GUI et la nécessité de regrouper des bibliothèques spécifiques à la plate-forme

est-il une autre voie?

si je voudrais faire GUI le développement de la JVM

  • avec une bonne API (Swing et SWT ne sont pas mauvais, mais ils ne sont pas vraiment bon non plus.)
  • qui "se sent" responsive (toujours un problème aujourd'hui avec Swing et SWT, malgré les affirmations que cela est résolu.)
  • ce qui ne sera pas obsolète dans quelques années quelle décision doit-je faire?

Est-il encore un troisième option disponible ou une possibilité qu'il pourrait y avoir dans le futur?

Une l'option

  • qui est rapide et réactive (pas l'idéologie de Swing de "si ce n'est pas rapide, c'est la faute du développeur")
  • avec une interface native
  • avec une seule bibliothèque qui fonctionne sur toutes les plates-formes

Est-ce réaliste?

Merci!

=========

pour clarifier: si je dois démarrer un nouveau projet de logiciel sur la JVM, il y a plusieurs options existantes, comme L'utilisation de SWT ou Swing, en utilisant Swing avec des bibliothèques tierces comme SwingX, JIDE, JGoodies, Flamingo ou en utilisant des cadres d'application comme Netbeans plate-forme ou Eclipse RCP. Y a-t-il un moyen soutenu/suggéré qui affaiblit la douleur normalement associée au développement de L'interface graphique Java?

13
demandé sur soc 2010-07-17 12:26:09

2 réponses

vous ne trouverez pas de réponse objective à cette question, seulement des préférences et des options personnelles.

SWT

Ma préférence personnelle est le SWT. J'ai commencé à l'utiliser, quand Swing était trop mauvais pour être une option. SWT est "juste" une couche sur le dessus de L'APIs fenêtrage natif et donc les applications écrites avec SWT se sentent comme des applications nativement écrites. Ceux-ci peuvent également être vissé vers le haut. Aucune API ne sera jamais à l'abri des mauvais développeurs. Le spectacle est aussi rapide qu'il peut obtenir dans mon expérience. Si ce n'est pas le cas, il y a une autre façon de le mettre en œuvre, là où il le sera.

L'API de SWT est de très bas niveau, ce qui rend la mise en œuvre des éléments de base inopinément fastidieuse, mais heureusement la plupart des cas d'utilisation typiques peuvent être résolus avec JFace, ce qui améliore la situation. Et lorsque vous utilisez L'API pendant un certain temps, vous accumulerez vos propres classes util. Vous pouvez devenir assez rapide dans la mise en œuvre des outils SWT.

depuis SWT vous donne seulement les bases, vous avez besoin MigLayout et Nébuleuse widgets pour survivre. Vous aimeriez Vitrage Listes.

Qt Jambi

en fait j'aurais aimé inclure une autre option que SWT et Swing pour vous: Qt Jambi. Mais Nokia a renoncé à cela, et il est "maintenu par une communauté open source" maintenant. Donc je ne sais pas "ne pas être obsolète dans quelques années".

néanmoins je suis excitée par cette discussion. Certaines personnes ont écrit une implémentation SWT en utilisant Qt Jambi comme API "native". Ils essaient de trouver comment y contribuer. Avoir Qt en option pourrait permettre à votre" bibliothèque unique qui tourne sur toutes les plateformes " pour SWT un jour, bien que je ne compterais pas dessus de sitôt.

Mais pour moi, votre exigence de "une bibliothèque unique" n'est pas un gros problème. Utilisez maven pour vos constructions, ajoutez quelques lignes de configuration et vous oublierez cela très bientôt.

Swing

Je ne peux pas vraiment comparer SWT à Swing, puisque mon expérience avec Swing est limitée. En tant qu'utilisateur, je n'aime pas la plupart des applications Swing, mais j'en ai vu de belles.

de nos jours l'apparence et la sensation natives des applications Swing sont devenus assez bons, mais vous ne tromperez pas un utilisateur de puissance. Aussi la performance semble être vraiment bonne dans les applications Swing nouvelles et bien faites, mais encore une fois, ce n'est que de ma vue limitée en tant qu'utilisateur.

Evidemment, il y a plus d' Des extensions tierces pour Swing que pour SWT - il suffit de faire une recherche Google. (Mais encore une fois, si vous supportez la douleur d'apprendre Eclipse RCP vous obtiendrez une infrastructure énorme et intéressante aussi bien. Cela ne parle pas de widgets cependant, c'est des choses comme EMF ou RAP. Je ne suis pas Eclipse RCP personne - je n'ai jamais eu assez de patience pour ça...)

un très grand avantage pour Swing, si vous aimez ce genre de choses, est Matisse, le constructeur de GUI de Netbeans. Qt a aussi un bien fait GUI builder.

résumé

si vous planifiez à long terme, Je ne vois pas plus d'options que SWT ou Swing pour le développement de GUI en Java. Les deux sont assez bons pour satisfaire la plupart des besoins si vous passez assez de temps. Mais ils ne sont pas parfaits. Vous envierez toujours les gens qui utilisent d'autres langues pour leurs widgets, la vitesse d'implémentation, l'outillage, ... Si vous n'êtes pas lié à Java, vous pouvez même préférer Flash ou Qt.

7
répondu the.duckman 2010-07-17 14:53:32

La réponse est préférez swing, je pense.

  • depuis 1.4 il y a de grands progrès sur awt (sun faire cela parce que java fx besoin awt, heureusement)
  • depuis 1.5 grand progrès dans la gestion de thread (SwingWorker et choses concurrentes)
  • swing est excellent, réactif (quel est le problème avec le développeur de panne ? ), natif de l&f, et ainsi de suite
  • il y a d'excellentes bibliothèques, comme swingx, trident, etc, et plate-forme, comme netbeans.

bien sûr que c'est une technologie mature (un peu vieille), mais je ne sais rien d'autre. Ce sera cobol du développement de GUI: -)

8
répondu Istao 2010-07-17 10:08:01