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

时间:2011-03-22 00:32:38

标签: programming-languages functional-programming paradigms reactive-programming

我最近一直在对反应式编程进行一些研究,我发现很难找到一个很好的描述Reactive和 Functional -Reactive之间的区别。

是否只是使用功能方法/范例实现反应式编程而不是使用声明式或OO范式?

2 个答案:

答案 0 :(得分:64)

功能反应式编程(FRP)是一种具有特定语义的特定编程模型。 (实际上,有两种变体,有时称为“经典FRP”和“箭头FRP”。) 我在an answer to "What is (functional) reactive programming?"中给出了摘要。 正如我在那里所说,对我而言,这两个关键属性一直是(a)精确&简单的表示和(b)连续时间。 我很遗憾这个模型被称为“功能反应式编程”,原因如下:

  • 这个名字省略了“时间”,时间对我来说很重要。
  • “功能性”一词的具体/明确含义很少。 我更喜欢Peter Landin建议的替代品“外延”。 (请参阅this blog comment中的引号和参考。)
  • 人们很容易错误地认为他们知道这个词的意思,因为他们知道这三个词的含义(或多或少)。

描述性&准确性,我更喜欢术语“指示性连续时间编程”(Jake McArthur在一段时间的谈话中建议)而不是“功能反应式编程”。

我在博文Early inspirations and new directions in functional reactive programming中写了一篇关于FRP起源的非常简短的文章。

答案 1 :(得分:13)

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

两者的定义更清楚地区分了两者。