An empirical study of multi-threading paradigms Reactive programming vs continuation-passing style
Sirojiddin Komolov, Nursultan Askarbekuly, Manuel Mazzara · 2020
This paper compares two popular multi-threading paradigms: reactive programming and continuation-passing style as today there are many software paradigms which could be replaced by each other, and programmers sometimes have dilemma which one to choose. . To conduct the comparison, the paper proposes a method for evaluating software paradigms in regards to Maintainability, Performance and Testability quality attributes, chosen due to their importance in modern software development. RxJava and Kotlin Coroutines serve as the specific implementations of the two paradigms, since both enjoy popularity in the industry and have proven themselves in real-world projects. As a result, the paper identifies that both frameworks have similar characteristics in regards to performance and testability, however Kotlin Coroutines demonstrates better maintainability. Moreover, the paper establishes a multi-dimensional evaluation method for comparing the frameworks, and identifies what factors should be taken into account when selecting a particular programming paradigm, also these findings could be used in software patterns comparison with some improvements and modifications.