J'essaye de visualiser en quelques simples automatique de systèmes physiques (telles choses comme le pendule, les bras de robot,etc.) en Haskell. Souvent, ces systèmes peuvent être décrits par des équations comme
df/dt = c*f(t) + u(t)
où u(t)
représente une sorte de "contrôle intelligent'. Ces systèmes de chercher à s'intègrent très bien dans le Fonctionnel Réactif paradigme de Programmation.
J'ai donc pris le livre "Le Haskell École de l'Expression" par Paul Hudak,
et de constater que le langage spécifique au domaine "FAL" (pour l'Animation Fonctionnelle de la Langue) a présenté, il fonctionne très agréablement pour mon simple jouet systèmes (bien que certaines fonctions, notamment integrate
, semblait être un peu trop paresseux pour une utilisation efficace, mais facilement réparable).
Ma question est, quelle est la plus mature, up-to-date, bien entretenu, des performances optimisées alternative pour les plus avancés, ou même des applications pratiques aujourd'hui?
Cette page du wiki des listes de plusieurs options pour Haskell, mais je ne suis pas clair sur les points suivants:
Le statut de "réactif", le projet de Conal Eliott qui est (comme je le comprends), l'un des inventers de ce paradigme de programmation, ressemble un peu rassis. J'adore son code, mais je devrais peut-être essayer d'autres plus up-to-date de solutions de rechange? Quelle est la principale différence entre eux, en termes de syntaxe/performance/exécution-la stabilité?
Pour citer un sondage en 2011, la Section 6, "... PRF implémentations ne sont pas encore assez efficaces ou assez prévisible dans la performance pour être utilisé efficacement dans des domaines qui exigent des garanties de latence ...". Alghough l'enquête suggère d'intéressantes optimisations possibles, compte tenu du fait que le FRP est là depuis plus de 15 ans, j'ai l'impression que ce problème de performances peut être quelque chose de très ou même intrinsèquement difficile à résoudre, au moins dans un délai de quelques années. Est-ce vrai?
Le même auteur de l'enquête parle de "temps fuites" dans son blog. Le problème est unique à la fibre de verre, ou quelque chose que nous sommes généralement lors de la programmation pure, non-stricte de la langue? Avez-vous déjà trouvé tout simplement trop difficile à stabiliser une PRF-fondé du système au fil du temps, si pas assez performant?
Est-ce encore un niveau de recherche du projet? Sont les gens comme ingénieurs d'usine, la robotique, les ingénieurs, les ingénieurs financiers, etc. leur utilisation (dans whaterver de la langue qui convient le mieux à leurs besoins)?
Bien que personnellement, je préfère un Haskell mise en œuvre, je suis ouvert à d'autres suggestions. Par exemple, il serait particulièrement amusant d'avoir un Erlang mise en œuvre --- il serait alors très facile d'avoir un d'intelligent, d'adaptation, d'auto-apprentissage, processus de serveur!