A Survey on Reactive Programming
Loading...
Date
2013
Journal Title
Journal ISSN
Volume Title
Publisher
ACM Computing Surveys (CSUR)
Abstract
Reactive programming has recently gained popularity as a paradigm that is well-suited for developing
event-driven and interactive applications. It facilitates the development of such applications by providing
abstractions to express time-varying values and automatically managing dependencies between such values.
A number of approaches have been recently proposed embedded in various languages such as Haskell,
Scheme, JavaScript, Java, .NET, etc. This survey describes and provides a taxonomy of existing reactive
programming approaches along six axes: representation of time-varying values, evaluation model, lifting operations,
multidirectionality, glitch avoidance, and support for distribution. From this taxonomy, we observe
that there are still open challenges in the field of reactive programming. For instance, multidirectionality
is supported only by a small number of languages, which do not automatically track dependencies between
time-varying values. Similarly, glitch avoidance, which is subtle in reactive programs, cannot be ensured in
distributed reactive programs using the current techniques.
Description
Keywords
Reactive programming, Interactive applications, Event-driven applications, Dataflow programming, Functional reactive programming, Reactive systems
Citation
Bainomugisha, E., Carreton, A. L., Cutsem, T. V., Mostinckx, S., & Meuter, W. D. (2013). A survey on reactive programming. ACM Computing Surveys (CSUR), 45(4), 1-34. http://doi.acm.org/10.1145/0000000.0000000