About RDP

This blog is about Reactive Demand Programming (RDP) and some of the concepts and motivations surrounding it, and a planned language RDP-based with preliminary name Awelon. Almost every article is related to RDP at least indirectly.

RDP is a bidirectional, reactive dataflow model that supports commutative, idempotent, continuous effects on external resources: resource state may be influenced by a set of values. RDP is a logical extension of REST architectural style to influence and effect. The resulting programming model is deeply symmetric and compositional, and enables much equational reasoning.

The current implementation of RDP is as a set of packages in Haskell, called Sirea (simply reactive). Open discussion of RDP is available at reactive-demand@googlegroups.com, which is a better venue for questions than comments on this blog.

Meta Comments: I accept discussion in comments, but I also believe in moderating them. Not immediately, mind – no need to hurt someone doing this, and time provides some emotional distance – but, a few months after you’ve commented, I may try to trim comments down to those of great relevance, pith, or clarity. If that is not for you, consider use of external fora for comments such as reddit or reactive-demand@googlegroups.com or your own blog.

7 Responses to About RDP

  1. Ben says:

    Can you provide some reading recommendations that’ll help someone with basic computer science knowledge make sense of your more technical posts? I’d be very grateful.

  2. M. says:

    Are you familiar with programming or specification languages based on category theory? I think they have some nice ideas that might be useful for RDP.
    Some main ones are Charity (http://pll.cpsc.ucalgary.ca/charity1/www/home.html) and Specware (http://specware.org/)

    There are many links for interesting ideas found here:

    • dmbarbour says:

      I am familiar with Charity. It did influence some of my earlier approaches to language design, though less now. I am also aware of the relationship between RDP and many categories (e.g. the Sirea.Behavior classes align with many classes of the ‘categories’ package in Haskell, by design).

  3. M. says:

    I guess that’s why I saw some ideas I thought was a bit similar.

    Among the Specware papers, this is the one I’ve found most interesting myself:

  4. vitalyper says:

    Is RDP has any relation to B. Pierce et la. Boomerang http://www.seas.upenn.edu/~harmony

    • dmbarbour says:

      No. Well, at a philosophical level, there is some relationship: both RDP and Boomerang support influence of a system through a view of the system. But RDP does not ensure reversibility, and is a very different approach from Boomerang.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s