The difference between Reactive and Functional-Reactive programming

Functional Reactive Programming (FRP) is a specific programming model with a specific semantics.
(Actually, there are two variants, which are sometimes called “classic FRP” and “arrow FRP”.)
I’ve given a summary in an answer to “What is (functional) reactive programming?”.
As I said there, the two key properties for me have always been (a) precise & simple denotation and (b) continuous time.
I regret that this model came to be called “functional reactive programming”, for a few reasons:

  • That name omits “time”, and time is central for me.
  • The term “functional” has so little specific/clear meaning.
    I much prefer Peter Landin’s suggested replacement “denotative”.
    (See the quotes and reference in this blog comment.)
  • It’s easy for people to incorrectly think they know what the term means because they know meanings (more or less) of each of the three words.

For descriptiveness & accuracy, I prefer the term “denotative continuous-time programming” (suggested by Jake McArthur in a conversation a while back) over “functional reactive programming”.

I wrote a very short piece on the origin of FRP in the blog post Early inspirations and new directions in functional reactive programming.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)