Containers and aggregates, mutators and isolates for reactive programming

Aleksandar Prokopec, Philipp Haller, Martin Odersky
2014 Proceedings of the Fifth Anuual Scala Workshop on - SCALA '14  
Many programs have an inherently reactive nature imposed by the functional dependencies between their data and external events. Classically, these dependencies are dealt with using callbacks. Reactive programming with first-class reactive values is a paradigm that aims to encode callback logic in declarative statements. Reactive values concisely define dependencies between singular data elements, but cannot efficiently express dependencies in larger datasets. Orthogonally, embedding reactive
more » ... bedding reactive values in a shared-memory concurrency model convolutes their semantics and requires synchronization. This paper presents a generic framework for reactive programming that extends first-class reactive values with the concept of lazy reactive containers, backed by several concrete implementations. Our framework addresses concurrency by introducing reactive isolates. We show examples that our programming model is efficient and convenient to use.
doi:10.1145/2637647.2637656 dblp:conf/ecoop/ProkopecHO14 fatcat:ai2dxqzoynbjnfjoo5p727urd4