Live, Rich, and Composable: Qualities for Programming Beyond Static Text
Efforts to push programming beyond static textual code have sought to imbue programming with multiple distinct qualities. One long-acknowledged quality is liveness: providing programmers with in-depth feedback about a program’s dynamic behavior as the program is edited. A second quality, long-explored but lacking a shared term of art, is richness: allowing programmers to edit programs though domain-specific representations and interactions rather than solely through text. In this paper, we map the relationship between these two qualities and survey past work that exemplifies them. We observe that systems combining liveness and richness often do so at the cost of an essential quality of traditional programming: composability. We argue that, by combining liveness, richness, and composability, programming systems can better capture the full potential of interactive computation without leaving behind the expressivity of traditional code.