Enhancing Liveness with Exemplars in the Newspeak IDE
Part of the Proceedings of the Seventh Workshop on Live Programming (LIVE 2021).
Traditional program editing tools are separate from program evalution tools.
Exceptions are debuggers as well as REPLs and similar tools such as Smalltalk workspaces and object inspectors, or computational notebooks. However, these are not designed for full scale program development. Most such tools do not support evaluation of code within an abstraction, such as a function or class instance. Debuggers do allow such evaluation, but require the user to navigate to a position in the code by manually initiating an execution path that leads to that position.
As a result of the separation of editing from evaluation, programmers writing or reading a program must mentally simulate its execution in order to understand it. To avoid the cognitive burden of such simulation, this paper argues that program editing should be tightly integrated with an evaluator, so that any expression or statement being edited can be evaluated at will. We describe the design of a development environment for the Newspeak programming language which fulfills this requirement.