38 votes

Où sont les utilisateurs d'interface graphique fonctionnels?

Il y a eu beaucoup de recherche sur la création d'interfaces graphiques dans un langage fonctionnel. Il y a des bibliothèques pour le push/pull prf, flèche base de fibre de verre et probablement d'autres supérieur de la recherche aussi. Beaucoup de gens semblent d'accord c'est le plus naturel encore de manière juste au sujet de tout le monde semble être à l'aide de l'impératif de liaison des bibliothèques comme gtk2hs et wxhaskell. Même dans les lieux recommandés comme de bons tutoriels enseigner la liaison à ces plaine impératif bibliothèques. Pourquoi ne pas d'interface basé sur FRP de recherche?

26voto

Heinrich Apfelmus Points 7200

Presque une année s'est écoulée depuis que ma réponse précédente et les choses ont changé dans le monde de la fonctionnelle de la programmation réactive (PRF).

  • En particulier, j'ai créé réactif-banane, une petite bibliothèque pour les PRF en Haskell. Tout manque encore quelques fonctionnalités, il est déjà un excellent moyen de mettre en œuvre des Interfaces graphiques dans un style purement fonctionnel, tel que démontré par une série d'exemples. Voici une capture d'écran: enter image description here

  • Comme avant, il est également Flapjax, une bibliothèque JavaScript pour PRF dans le navigateur web.

23voto

Heinrich Apfelmus Points 7200

Alors que tout le monde est d'accord que fonctionnel réactif de programmation (FRP) est la voie à suivre pour la mise en œuvre graphique de l'interface utilisateur, pas de bien-arrondie de la bibliothèque pour faire en Haskell n'a encore émergé. Je pense que les raisons principales sont:

  • L'équilibrage de l'expressivité VS l'utilisation des ressources est difficile (espace fuites, les problèmes de synchronisation). Le plus expressif de votre PRF modèle, plus il est difficile de mettre en œuvre tout en garantissant l'efficacité. La conception de l'espace est encore en cours d'exploration.
  • API de commodité. FRP est bien adapté pour la mise en œuvre de fonctions de la forme Time -> MouseInput -> Picture, mais GUI plates-formes comme GTK+ ou de Cacao ne fonctionne pas comme ça, et la question est de savoir comment exprimer le dernier en PRF style sans obtenir de plus compliqué que le style traditionnel.

En d'autres termes, les PRF recherche n'est pas encore terminée.

Cela étant dit, certaines implémentations pratiques existent déjà, par exemple Flapjax, un langage qui se compile en JavaScript.

En tout cas, personne ne peut vous empêcher de mise en œuvre de votre propre PRF bibliothèque adaptée à un usage particulier et grandement profit. Luc Palmer l'a fait avec tant de succès, et je suis en train d'essayer aussi. (Je préfère perdre mon temps avec PRF qu'avec des variables mutables.)

7voto

mgold Points 836

Vieux fil, je le sais, mais Elm ( elm-lang.org ) est en train de devenir le centre névralgique du PRF "réel". Il compile jusqu'à JavaScript et le site Web Elm y est écrit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X