Der Unterschied zwischen reaktiver und funktional-reaktiver Programmierung


75

Ich habe in letzter Zeit einige Forschungen zur reaktiven Programmierung durchgeführt und finde es schwierig, eine gute Beschreibung des Unterschieds zwischen reaktiv und funktional- reaktiv zu finden.

Ist es einfach so, dass die reaktive Programmierung mit funktionalen Methoden / Paradigmen implementiert wird, anstatt deklarative oder OO-Paradigmen zu verwenden?

Antworten:


73

Functional Reactive Programming (FRP) ist ein spezifisches Programmiermodell mit einer spezifischen Semantik. (Tatsächlich gibt es zwei Varianten, die manchmal als "klassisches FRP" und "Pfeil-FRP" bezeichnet werden.) Ich habe eine Zusammenfassung in einer Antwort auf "Was ist (funktionale) reaktive Programmierung?" . Wie ich dort sagte, waren die beiden Schlüsseleigenschaften für mich immer (a) genaue und einfache Bezeichnung und (b) kontinuierliche Zeit. Ich bedauere, dass dieses Modell aus mehreren Gründen als "funktionale reaktive Programmierung" bezeichnet wurde:

  • Dieser Name lässt "Zeit" weg und Zeit ist für mich von zentraler Bedeutung.
  • Der Begriff "funktional" hat so wenig spezifische / klare Bedeutung. Ich bevorzuge Peter Landins vorgeschlagenen Ersatz "denotativ". (Siehe die Zitate und Verweise in diesem Blog-Kommentar .)
  • Es fällt den Menschen leicht, falsch zu glauben, dass sie wissen, was der Begriff bedeutet, weil sie die Bedeutungen (mehr oder weniger) jedes der drei Wörter kennen.

Aus Gründen der Beschreibung und Genauigkeit bevorzuge ich den Begriff "denotative zeitkontinuierliche Programmierung" (vorgeschlagen von Jake McArthur in einem Gespräch vor einiger Zeit) gegenüber "funktionale reaktive Programmierung".

Ich habe ein sehr kurzes Stück über den Ursprung von FRP im Blog-Beitrag Frühe Inspirationen und neue Richtungen in der funktionalen reaktiven Programmierung geschrieben .


22

FRP ist eine Kombination aus funktionaler Programmierung (Programmierparadigma, das auf der Idee basiert, dass alles eine reine Funktion ist) und reaktivem Programmierparadigma (basierend auf der Idee, dass alles ein Strom ist (Beobachter und beobachtbare Philosophie)). Es wird angenommen, dass es das Beste der Welt ist.

Die Definition von beiden gibt eine klarere Unterscheidung zwischen den beiden.


tolle Übersicht :)
Brahem Mohamed
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.