Où sont les utilisateurs de l'interface graphique fonctionnelle?

il y a eu beaucoup de recherches sur les façons de créer des interfaces graphiques dans un langage fonctionnel. Il y a des bibliothèques pour push/pull frp, arrow based frp et probablement d'autres recherches supérieures 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 les endroits recommandés comme bon tutoriels enseigner la liaison à ces plaine impératif bibliothèques. Pourquoi pas des interfaces graphiques basées sur la recherche FRP?

37
demandé sur Community 2010-08-14 14:20:02

3 réponses

presque un an s'est écoulé depuis ma réponse précédente et les choses ont changé dans le monde de functional reactive programming (FRP).

  • en particulier, j'ai créé reactive-banana , une petite bibliothèque pour FRP à Haskell. Bien qu'il manque encore quelques fonctionnalités, C'est déjà une excellente façon de mettre en œuvre GUIs dans un style purement fonctionnel, comme le démontre une collection d'exemples . Voici une capture d'écran: enter image description here

  • comme auparavant, il y a aussi Flapjax , une bibliothèque JavaScript pour FRP dans le navigateur web.

26
répondu Heinrich Apfelmus 2011-07-28 06:42:12

alors que tout le monde est d'accord que functional reactive programming (FRP) est la voie à suivre pour mettre en œuvre l'interface utilisateur graphique, aucune bibliothèque bien équilibrée pour le faire dans Haskell a émergé encore. Je pense que les principales raisons sont:

  • il est difficile d'équilibrer l'expressivité par rapport à l'utilisation des ressources (fuites d'espace, problèmes de synchronisation). Plus votre modèle de PRF est expressif, plus il est difficile de le mettre en œuvre tout en garantissant son efficacité. Le l'espace de conception est encore à l'étude.
  • API convenance. FRP est bien adapté pour mettre en œuvre des fonctions de la forme Time -> MouseInput -> Picture , mais les plates-formes GUI comme GTK+ ou Cocoa ne fonctionnent pas comme cela, et la question Est de savoir comment exprimer ce dernier dans le style FRP sans devenir plus compliqué que le style traditionnel.

en d'autres termes, la recherche du PRF n'est pas encore terminée.

cela dit, quelques implémentations pratiques existe déjà, par exemple Flapjax , un langage qui compile à JavaScript.

dans tous les cas, personne ne peut vous empêcher de mettre en œuvre votre propre bibliothèque FRP adaptée à un but particulier et en tirer un grand profit. Luc Palmer l'a fait avec tant de succès, et je suis en train d'essayer aussi. (Je préférerais perdre mon temps avec le PRF qu'avec des variables mutables.)

23
répondu Heinrich Apfelmus 2010-08-14 15:10:07

vieux fil, je sais, mais L'Orme ( elm-lang.org ) devient rapidement le centre de la FRP" réelle-monde". Il se compile vers le bas de JavaScript, et le site Web D'Elm est écrit dedans.

6
répondu mgold 2013-11-11 21:50:09