Reactive和Functional-Reactive编程之间的区别

The difference between Reactive and Functional-Reactive programming

最近我对反应式编程做了一些研究,发现很难很好地描述反应式编程和功能性反应式编程之间的区别。

与使用声明性或OO范式相比,反应式编程仅仅是使用函数方法/范式来实现的吗?


功能反应式编程(FRP)是一种具有特定语义的特定编程模型。(实际上,有两种变体,有时称为"经典玻璃钢"和"箭头玻璃钢"。)我在回答"什么是(功能性)反应式编程"时做了总结。.正如我在这里所说,我的两个关键属性一直是(a)精确和简单的表示和(b)连续时间。我很遗憾,这个模型被称为"功能性反应式编程",原因如下:

  • 这个名字省略了"时间",时间是我的中心。
  • "功能性"一词的具体/明确含义很少。我更喜欢彼得·兰丁建议的替代品"象征性"。(请参阅此博客评论中的引用和参考。)
  • 人们很容易错误地认为他们知道这个词的含义,因为他们知道这三个词的含义(或多或少)。

对于描述性和准确性,我更喜欢"表示性连续时间编程"(Jake McArthur在不久前的一次谈话中提出)而不是"功能性反应式编程"。

我在博客中写了一篇关于FRP起源的非常简短的文章:功能反应式编程的早期灵感和新方向。


FRP是功能编程(建立在一切都是纯功能的思想之上的编程范式)和反应式编程范式(建立在一切都是流的思想之上(观察者和可观察哲学))的组合。它被认为是世界上最好的。

两者的定义使两者之间的区别更加明确。