Reactive Programming is a style of
DataflowProgramming where changes in input values are propagated through a function call graph. This should be familiar to users of spreadsheets. This is naturally expressed in
FunctionalProgramming, resulting in
FunctionalReactiveProgramming.
Related to
EventDrivenProgramming,
EventDrivenArchitecture,
ComplexEventProcessing,
EventStreamProcessing. These aren't associated with 'changes to inputs', but rather to external discrete observations; however, the relationship is a close one.
ObserverPattern can be used to implement
ReactiveProgramming, but requires explicit caching, far too much
SelfDiscipline and knowledge to avoid problematic
SideEffects that bite you in the arse later. Most programmers screw up. (Related:
DeprecatingTheObserverPattern)
FlowBasedProgramming may also be leveraged into
ReactiveProgramming, but isn't ideally suitable for it.
A new
ReactiveProgramming model is under development, called
ReactiveDemandProgramming, supporting bi-directional communication of demands (making it more suitable for open modularity, constraint programming, distributed programming).
ProgrammingParadigm