Exploratory and Live, Programming and Coding: A Literature Study Comparing Perspectives on Liveness
Various programming tools, languages, and environments give programmers the impression of changing a program while it is running. This experience of liveness has been discussed for over two decades and a broad spectrum of research on this topic exists. Amongst others, this work has been carried out in the communities around three major ideas which incorporate liveness as an important aspect: live programming, exploratory programming, and live coding. While there have been publications on the focus of each particular community, the overall spectrum of liveness across these three communities has not been investigated yet. Thus, we want to delineate the variety of research on liveness. At the same time, we want to investigate overlaps and differences in the values and contributions between the three communities. Therefore, we conducted a literature study with a sample of 212 publications on the terms retrieved from three major indexing services. On this sample, we conducted a thematic analysis regarding the following aspects: motivation for liveness, application domains, intended outcomes of running a system, and types of contributions. We also gathered bibliographic information such as related keywords and prominent publications. Besides other characteristics the results show that the field of exploratory programming is mostly about technical designs and empirical studies on tools for general-purpose programming. In contrast, publications on live coding have the most variety in their motivations and methodologies with a majority being empirical studies with users. As expected, most publications on live coding are applied to performance art. Finally, research on live programming is mostly motivated by making programming more accessible and easier to understand, evaluating their tool designs through empirical studies with users. In delineating the spectrum of work on liveness, we hope to make the individual communities more aware of the work of the others. Further, by giving an overview of the values and methods of the individual communities, we hope to provide researchers new to the field of liveness with an initial overview.
💡 Research Summary
The paper presents a systematic literature study that maps and compares three research communities that share a common interest in “liveness”: live programming, exploratory programming, and live coding. The authors argue that, although the notion of being able to change a program while it is running has been discussed for more than two decades, the spectrum of work across these three communities has never been examined as a whole. To fill this gap, they collected a sample of 212 publications from three major indexing services (ACM Digital Library, IEEE Xplore, and Scopus) using the keywords “live programming”, “exploratory programming”, and “live coding”. Each paper was coded along four thematic dimensions: (1) the motivation for introducing liveness, (2) the application domain, (3) the intended outcomes of a running system, and (4) the type of contribution (e.g., tool design, empirical study, theoretical model). Bibliographic metadata such as co‑occurring keywords and citation counts were also recorded.
The analysis reveals distinct patterns for each community. Exploratory programming is dominated by technical designs and empirical evaluations of tools that support general‑purpose programming. Its primary motivation is to treat programming as an experimental activity, shortening the edit‑run‑debug cycle and improving developer productivity. The majority of its contributions are tool prototypes (≈60 %) and user studies measuring task time, error rates, or code quality. Application domains are broad, ranging from software engineering to data science and robotics.
Live coding, by contrast, is rooted in performance art. Most papers (≈70 %) describe artistic installations, concerts, or visual performances where code is projected and manipulated in real time for an audience. The motivations are diverse—ranging from artistic expression and audience interaction to the study of creativity under time pressure. Empirical work often involves audience surveys, physiological measurements, or qualitative analysis of the performance experience. The community’s contribution profile leans heavily toward case studies and user experiments rather than formal tool engineering.
Live programming occupies a middle ground. Its research is largely driven by the desire to make programming more accessible and easier to understand, especially for novices and non‑programmers. Typical contributions include design principles for “live” IDEs, prototypes that provide immediate visual feedback, and educational studies that assess learning gains, comprehension, and retention. Evaluation methods are predominantly controlled experiments with pre‑ and post‑tests, supplemented by self‑report questionnaires.
The paper also highlights methodological differences. Live coding evaluates success through artistic criteria (audience engagement, aesthetic impact), whereas exploratory and live programming rely on quantitative metrics (execution time, error detection, learning outcomes). Consequently, the former community publishes more qualitative, narrative‑driven papers, while the latter two favor statistical analysis and reproducible experiments.
By delineating these patterns, the authors make three key contributions. First, they provide a taxonomy that clarifies how “liveness” is operationalized across domains. Second, they expose gaps and opportunities for cross‑fertilization: for example, visualization techniques from live coding could enrich exploratory programming environments, and the rigorous user‑study protocols from live programming could strengthen evaluation in live coding research. Third, they propose the need for a shared meta‑model of liveness—standardized terminology, evaluation frameworks, and data repositories—to enable more systematic comparison in future work.
In conclusion, the study demonstrates that while live programming, exploratory programming, and live coding share a common philosophical core, they diverge significantly in motivations, application contexts, expected outcomes, and research methods. Recognizing these divergences can help each community become aware of relevant work outside its immediate sphere, fostering interdisciplinary collaborations and accelerating the overall advancement of liveness research.
Comments & Academic Discussion
Loading comments...
Leave a Comment