Does Task Complexity Moderate the Benefits of Liveness? A Controlled Experiment
Patrick Rein, Stefan Ramson, Tom Beckmann, and Robert Hirschfeld (Hasso Plattner Institute, Germany; University of Potsdam, Germany)
Live programming features can be found in a range of programming environments, from individual prototypes to widely used environments. While liveness is generally considered a useful property, there is little empirical evidence on when and how liveness can be beneficial. Even though there are few experimental studies, their results are largely inconclusive. We reviewed existing experiments and related studies to gather a collection of potential effects of liveness and moderating factors. Based on this collection, we concluded that task complexity and prior experience addressing liveness are potentially essential factors neglected in previous experiments. To fill this gap, we devised and conducted a controlled experiment (N = 37) testing the hypothesis that task complexity moderates the effects of live introspection tools on participants’ debugging efficiency, given participants with prior experience with liveness. Our results do not support the hypothesis that task complexity moderates the effect of live introspection tools. This non-significant moderation effect might result from the low number of participants, as the data suggests a moderation effect. The results also show that in our experiment setting, live introspection tools significantly reduced the time participants took to debug the tasks. For researchers interested in the effects of liveness, our findings suggest that studies on liveness should make conscious choices about task complexity and participants’ prior experience with liveness. For designers of programming environments, the results of our experiment are a step toward understanding when and how programming tools should be live to become more helpful to programmers.
@Article{Programming Journal, Volume24p1,
author = {Patrick Rein and Stefan Ramson and Tom Beckmann and Robert Hirschfeld},
title = {Does Task Complexity Moderate the Benefits of Liveness? A Controlled Experiment},
journal = {},
volume = {},
number = {},
articleno = {1},
numpages = {39},
doi = {10.22152/programming-journal.org/2025/9/1},
year = {2024},
}
Schema Evolution in Interactive Programming Systems
Jonathan Edwards, Tomas Petricek, Tijs van der Storm, and Geoffrey Litt (Independent, USA; Charles University, Czechia; CWI, Netherlands; University of Groningen, Netherlands; Ink & Switch, USA)
Many improvements to programming have come from shortening feedback loops, for example with Integrated Development Environments, Unit Testing, Live Programming, and Distributed Version Control. A barrier to feedback that deserves greater attention is Schema Evolution. When requirements on the shape of data change then existing data must be migrated into the new shape, and existing code must be modified to suit. Currently these adaptations are often performed manually, or with ad hoc scripts. Manual schema evolution not only delays feedback but since it occurs outside the purview of version control tools it also interrupts collaboration.
Schema evolution has long been studied in databases. We observe that the problem also occurs in non-database contexts that have been less studied. We present a suite of challenge problems exemplifying this range of contexts, including traditional database programming as well as live front-end programming, model-driven development, and collaboration in computational documents. We systematize these various contexts by defining a set of layers and dimensions of schema evolution.
We offer these challenge problems to ground future research on the general problem of schema evolution in interactive programming systems and to serve as a basis for evaluating the results of that research. We hope that better support for schema evolution will make programming more live and collaboration more fluid.
@Article{Programming Journal, Volume24p2,
author = {Jonathan Edwards and Tomas Petricek and Tijs van der Storm and Geoffrey Litt},
title = {Schema Evolution in Interactive Programming Systems},
journal = {},
volume = {},
number = {},
articleno = {2},
numpages = {34},
doi = {10.22152/programming-journal.org/2025/9/2},
year = {2024},
}
Owi: Performant Parallel Symbolic Execution Made Easy, an Application to WebAssembly
Léo Andrès, Filipe Marques, Arthur Carcano, Pierre Chambart, José Fragoso Santos, and Jean-Christophe Filliâtre (OCamlPro, France; Université Paris-Saclay - CNRS - ENS Paris-Saclay - Inria - LMF, France; INESC-ID, Portugal; University of Lisbon, Portugal)
In this paper, we present the design of Owi, a symbolic interpreter for WebAssembly written in OCaml, and how we used it to create a state-of-the-art tool to find bugs in programs combining C and Rust code. WebAssembly (Wasm) is a binary format for executable programs. Originally intended for web applications, Wasm is also considered a serious alternative for server-side runtimes and embedded systems due to its performance and security benefits. Despite its security guarantees and sandboxing capabilities, Wasm code is still vulnerable to buffer overflows and memory leaks, which can lead to exploits on production software. To help prevent those, different techniques can be used, including symbolic execution.
Owi is built around a modular, monadic interpreter capable of both normal and symbolic execution of Wasm programs. Monads have been identified as a way to write modular interpreters since 1995 and this strategy has allowed us to build a robust and performant symbolic execution tool which our evaluation shows to be the best currently available for Wasm. Moreover, because WebAssembly is a compilation target for multiple languages (such as Rust and C), Owi can be used to find bugs in C and Rust code, as well as in codebases mixing the two. We demonstrate this flexibility through illustrative examples and evaluate its scalability via comprehensive experiments using the 2024 Test-Comp benchmarks. Results show that Owi achieves comparable performance to state-of-the-art tools like KLEE and Symbiotic, and exhibits advantages in specific scenarios where KLEE's approximations could lead to false negatives.
@Article{Programming Journal, Volume24p3,
author = {Léo Andrès and Filipe Marques and Arthur Carcano and Pierre Chambart and José Fragoso Santos and Jean-Christophe Filliâtre},
title = {Owi: Performant Parallel Symbolic Execution Made Easy, an Application to WebAssembly},
journal = {},
volume = {},
number = {},
articleno = {3},
numpages = {43},
doi = {10.22152/programming-journal.org/2025/9/3},
year = {2024},
}