Abstract: Literate computing is a computing paradigm that interweaves executable code with more conventional media such as prose, images, and video. It has recently seen uptake particularly in the data science community with tools such as Jupyter Notebook, which is an open source system inspired by Mathematica notebooks. These Mathematica-inspired tools are often referred to as computational notebooks. We, however, argue that computational notebooks are just a special case of literate computing tools and that there is an uncharted design space for computing tools that dissolves the traditional distinction between programming and using computers, but also between using and developing software tools. We examine various programming environments; some new, some old, some fully developed, some research prototypes. By looking at how we got here—the history—and the challenges identified in the research so far, we analyze the environments through a range of themes, such as purpose, user community, system metaphor, malleability, etc. We conclude with a discussion of design considerations for future literate computing environments.
PPIG 2019 - 30th Annual Workshop
Mapping the Landscape of Literate Computing