On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study

by Guido Salvaneschi, Sebastian Proksch, Sven Amann, Sarah Nadi, and Mira Mezini

Abstract:

Starting from the first investigations with strictly functional languages, reactive programming has been proposed as the programming paradigm for reactive applications. Over the years, researchers have enriched reactive languages with more powerful abstractions, embedded these abstractions into mainstream languages - including object-oriented languages - and applied reactive programming to several domains, like GUIs, animations, Web applications, robotics, and sensor networks. However, an important assumption behind this line of research is that, beside other claimed advantages, reactive programming makes a wide class of otherwise cumbersome applications more comprehensible. This claim has never been evaluated. In this paper, we present the first empirical study that evaluates the effect of reactive programming on comprehension. The study involves 127 subjects and compares reactive programming to the traditional object-oriented style with the Observer design pattern. Our findings show that program comprehension is significantly enhanced by the reactive-programming paradigm - a result that suggests to further develop research in this field.

Resources

BibTeX

@article {SPANM17,
  title = {{On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study}},
  author = {Salvaneschi, Guido and Proksch, Sebastian and Amann, Sven and Nadi, Sarah and Mezini, Mira},
  journal = {{IEEE Transactions on Software Engineering}},
  series = {TSE},
  year = {2017},
  doi = {10.1109/TSE.2017.2655524},
  url = {http://dx.doi.org/10.1109/TSE.2017.2655524},
}