Ich versuche, einige einfache automatische physikalische Systeme (wie Pendel, Roboterarme usw.) In Haskell zu visualisieren. Oft können diese Systeme durch Gleichungen wie beschrieben werden
df/dt = c*f(t) + u(t)
wo u(t)
repräsentiert eine Art "intelligente Steuerung". Diese Systeme scheinen sehr gut in das Paradigma der funktionalen reaktiven Programmierung zu passen.
Also habe ich das Buch „The Haskell School of Expression“ von Paul Hudak packte und festgestellt , dass die domänenspezifische Sprache „FAL“ (für Functional - Animation Language) präsentierte dort recht tatsächlich funktioniert pleasently für meine einfachen Spielzeug - Systeme (auch wenn einige Funktionen, vor allem integrate
, schien ein bisschen zu faul für eine effiziente Nutzung zu sein, aber leicht zu reparieren).
Meine Frage ist, was ist die ausgereiftere, aktuellere, gepflegte, leistungsoptimierte Alternative für fortgeschrittenere oder sogar praktische Anwendungen heute?
Diese Wiki-Seite listet verschiedene Optionen für Haskell auf, aber mir sind die folgenden Punkte nicht klar:
Der Status von "reaktiv", dem Projekt von Conal Eliott, der (wie ich es verstehe) einer der Erfinder dieses Programmierparadigmas ist, sieht etwas abgestanden aus. Ich liebe seinen Code, aber vielleicht sollte ich andere aktuellere Alternativen ausprobieren? Was ist der Hauptunterschied zwischen ihnen in Bezug auf Syntax / Leistung / Laufzeitstabilität?
Um aus einer Umfrage im Jahr 2011 zu zitieren , Abschnitt 6: " ... FRP-Implementierungen sind immer noch nicht effizient genug oder vorhersehbar genug, um in Domänen, in denen Latenzgarantien erforderlich sind, effektiv eingesetzt zu werden ... ". Obwohl die Umfrage einige interessante mögliche Optimierungen vorschlägt, da FRP seit mehr als 15 Jahren besteht, habe ich den Eindruck, dass dieses Leistungsproblem zumindest innerhalb weniger Jahre sehr oder sogar von Natur aus schwierig zu lösen sein könnte . Ist das wahr?
Der gleiche Autor der Umfrage spricht in seinem Blog über "Zeitlecks" . Ist das Problem nur bei FRP oder etwas, das wir normalerweise haben, wenn wir in einer reinen, nicht strengen Sprache programmieren? Haben Sie es jemals zu schwierig gefunden, ein FRP-basiertes System im Laufe der Zeit zu stabilisieren, wenn nicht leistungsfähig genug?
Ist das noch ein Forschungsprojekt? Verwenden die Leute wie Anlageningenieure, Robotikingenieure, Finanzingenieure usw. sie tatsächlich (in welcher Sprache auch immer, die ihren Bedürfnissen entspricht)?
Obwohl ich persönlich eine Haskell-Implementierung bevorzuge, bin ich offen für andere Vorschläge. Zum Beispiel würde es besonders Spaß machen, eine Erlang-Implementierung zu haben - es wäre dann sehr einfach, einen intelligenten, adaptiven, selbstlernenden Serverprozess zu haben!