Weder bei Schauspielern noch bei FRP geht es um Streaming. Akteure unterstützen nicht einmal die externe Konfiguration eines Ausgabestreams.
FRP zeichnet sich stark durch die Modellierung von Signalen und Ereignissen auf einer linearen Zeitachse aus, wodurch das FRP-Verhalten deterministisch komponiert werden kann. Schauspieler sind stark von der Verarbeitung von Nachrichten in nicht deterministischer Reihenfolge geprägt und haben kaum kompositorische Eigenschaften (dh Sie können eine Anordnung von zwei Schauspielern nicht als größeren Schauspieler behandeln).
Wenn Sie Ähnlichkeiten suchen, haben beide Akteure und FRP eine enge Beziehung zur Lambda-Rechnung. Beide können Systeme modellieren, die auf menschliche Eingaben reagieren. Beide unterstützen die Modellierung des internen (lokalen) Zustands.
FRP unterstützt den lokalen Zustand durch Integrale oder Akkumulatoren (Fold over Time), während das Akteurmodell den Zustand unterstützt, indem jeder Akteur sein Verhalten für die nächste Nachricht als Antwort auf die aktuelle festlegen kann. Diese durchgängige Unterstützung des lokalen Status macht sowohl FRP als auch Actors für die Live-Programmierung (oder die Laufzeitaktualisierung des Programmcodes) unzureichend. es wird zu leicht, einen wichtigen Zustand zu verlieren.
In Bezug auf Anwendungsdomänen:
Das Actors-Modell eignet sich gut für offene Systeme, in denen wir möglicherweise Akteure zur Laufzeit installieren oder warten möchten. Das Actors-Modell ist auch für verteilte Systeme wenig geeignet, da die nicht deterministische Anordnung von Nachrichten eine konforme Implementierung erleichtern kann. (Der Grund, warum Akteure für verteilte Systeme nicht besser geeignet sind, ist, dass es angesichts von Störungen ziemlich schwierig ist, sicherzustellen, dass eine Nachricht "einmal und nur einmal" eintrifft, und dass Akteure in der Regel auch verteilte GC benötigen, was schmerzhaft ist.)
FRP eignet sich gut für geschlossene Systeme, die über einen längeren Zeitraum betrieben werden - z. B. Robotersteuerungen, Musikprogrammierung, Computerspielzeug. Der Determinismus und die kompositorischen Merkmale machen die Arbeit mit FRP angenehmer als mit Akteuren, zumindest in den Fällen, in denen FRP eine Lösung direkt modellieren kann. Das Integrieren von FRP mit Effekten (elegant, ohne das Modell mit Unreinheiten zu hacken) hat sich als schwierig erwiesen. In letzter Zeit wurde an effektiven FRP über "Wurmlöcher" gearbeitet - effektiv, einzigartiger oder linearer typisierter Zugriff auf Ressourcen.
Es gibt andere Modelle, die irgendwo zwischen FRP und Actors liegen.
Flow Based Programming (FBP), entwickelt von John Paul Morrison, unterstützt das Streaming von Nachrichten wirklich.
Time Warp-Protokolle (oder die neueren Arbeiten zu Lightweight Time Warp (LTW)) platzieren akteursähnliche Nachrichten auf einer logischen Zeitachse, um eine kontrollierte und kompositorische Vorstellung von der Weitergabe von Nachrichten zu ermöglichen. Time Warp wird häufig für große parallele und verteilte Systeme verwendet, z. B. für das wissenschaftliche Rechnen. Der ursprüngliche Zeitsprung war für interaktive Simulationen (Reaktion auf menschliche Eingaben) ungeeignet, und LTW ist nur bedingt geeignet.
Ich entwickle Reactive Demand Programming (RDP), das eine reaktive, kompositionelle, FRP-ähnliche Manipulation und Verarbeitung von Signalen in offenen und verteilten Systemen ermöglicht und den lokalen Zustand beseitigt. RDP wird erreicht, indem Nebenwirkungen durch Signale im Laufe der Zeit auf einen kommutativen, idempotenten Einfluss auf den Ressourcenzustand beschränkt werden. RDP erfordert ein Umdenken der Ressourcen- und Zustandsmodelle.