GUI Scala/Groovy/Clojure
Dernière fois que j'ai eu à traiter avec Java a été de 2005 et j'ai oublié presque tout sur elle depuis.
Aujourd'hui, j'ai besoin de construire une interface graphique, l'application sur le dessus de Java. Je suppose qu'il est préférable d'utiliser l'un de Scala/Groovy/Clojure langues.
La question est: qui est le meilleur pour les ordinateurs de bureau de la programmation GUI? Mon programme de transformation et d'afficher une série de jpeg/png + il y aura de ~10 boîtes de dialogue (avec des tonnes d'options dans chaque ensemble de widgets).
La principale exigence est la compacité: je déteste écrire une dizaine de lignes de code seulement pour dessiner un cadre simple avec un bouton. Mon expérience dans le GUI est (principalement) Tcl/Tk et GTK+.
Vous devez vous connecter pour publier un commentaire.
Scala est livré avec assez complet des exemples d'applications de base pour les éléments d'interface graphique, qui vous permet d'exécuter en tapant
scala scala.swing.test.UIDemo
à la ligne de commande. Vous pouvez parcourir le code source pour eux ici.Vous pouvez également consulter ce document pour avoir une idée des principes de conception de Scala Swing wrappers.
DISCLAIMER: je suis un Clojure programmeur. Je suis évidemment biaisée.
De toutes ces langues, je pense que Clojure et Groovy sont probablement le plus compact. Scala est un curly-support des langages comme Java, de sorte qu'il a tendance à prendre un peu plus d'espace. Cependant, il est loin d'être aussi détaillé que Java est, et je pense que Scala est assez impressionnant. Je sais que la Scala a un swing wrapper. Je n'ai jamais fait de développement du GUI en Scala, donc je ne peux pas vraiment dire comment il se sent.
J'ai fait de la balançoire développement en Clojure, et il n'a pas vraiment beaucoup. À l'aide de swing direct de Clojure peut être fastidieux jusqu'à ce que vous écrivez vous-même certaines abstractions, mais tout à fait, swing apps sont plus petits que la même chose en Java, car Clojure code a tendance à être plus court et plus concis que le code Java.
Clojure a aussi quelques papiers d'emballage de toutes sortes à faire de la balançoire développement plus Clojury. L'un des qui est clj-swing. J'ai vu un code écrit à l'aide d'elle, et c'est plutôt cool, et certainement plus concis que direct interop.
Maintenant, je ne sais pas Groovy. Je ne sais vraiment pas grand-chose à ce sujet, mais je sais que c'est plus compact que celui de Java, donc j'imagine développement du GUI serait assez compact ainsi.
Je pense que Clojure est un pari sûr. Avec clj-swing, ou même directement à l'aide de l'IHM Java boîtes à outils directement va être beaucoup plus compact par rapport à Java, et la capacité à construire des abstractions non plus compact des trucs avec des macros est certainement un énorme plus. Clojure a mon vote.
Groovy a la Griffon cadre qui utilise la convention de configuration pour la construction d'applications à interface graphique sur la JVM. Il est similaire à l'graal/rails mais pour une riche interface graphique plutôt que d'une application web.
Groovy a quelque chose qui s'appelle la swing builder pour faire des GUI programmation plus facile. Voici un exemple de code à partir de la groovy site web, il crée une image avec un bouton et compte le nombre de fois que vous cliquez dessus:
Je suis actuellement en train de développer une application SWT en Scala et tout à fait comme elle. Mais je m'attends à Clojure serait encore plus compact.
J'ai écrit une interface graphique en utilisant Clojure directement avec Swing. Il a travaillé très bien jusqu'à présent. J'ai également écrit quelques composants de l'INTERFACE utilisateur en Java qui se sont révélés très facile à intégrer avec Clojure partie de la base de code.
Je pense aussi que clj-swing ressemble beaucoup - peut-être plus facile que d'utiliser Balancer directement si vous n'avez pas avant le Swing de l'expérience.