Interaction vs. Abstraction: Managed Copy and PasteVirtual
Abstraction is at the core of programming, but it has a cost. We exhort programmers to use proper abstractions like functions but they often find it easier to copy & paste instead. Copy & paste is roundly criticized because subsequent changes to copies may have to be manually reconciled, which is easily overlooked and easily mistaken. It seems there is a conflict between the generality and reusability of abstraction with the simplicity of copying and modifying code.
We suggest that this conflict arises because we are still thinking in terms of paper-based notations. Indeed the term ``copy & paste'' originates from the practice of physically cutting and gluing slips of paper. But an interactive programming environment can free us from the limitations of paper. We propose \emph{managed copy & paste}, in which the programming environment records copy & paste operations, along with structural edit operations, so that it can track the differences between copies and reconcile them on command. These capabilities mitigate the aforementioned problems of copy & paste, allowing abstraction to be deferred or reduced.
Managed copy & paste resembles version control as in git, except that it works not between versions of a program but between copies within the program. It is based on a new theory of structural editing and version control that offers precise differencing based on edit history rather than the heuristic differencing of textual version control. We informally explain this theory and demonstrate a prototype implementation of a data science notebook. Lastly, we suggest further mechanisms of \textit{gradual abstraction} that could be provided by the programming environment to lessen the cognitive load of programming.
Mon 5 DecDisplayed time zone: Auckland, Wellington change
09:00 - 10:00 | |||
09:00 15mTalk | Creating Dynamic Prototypes from Web Page SketchesVirtual PAINT DOI | ||
09:15 15mTalk | Toward a VR-Native Live Programming EnvironmentVirtual PAINT Leonard Geier University of Potsdam; Hasso Plattner Institute, Clemens Tiedt University of Potsdam; Hasso Plattner Institute, Tom Beckmann University of Potsdam; Hasso Plattner Institute, Marcel Taeumel University of Potsdam; Hasso Plattner Institute, Robert Hirschfeld University of Potsdam; Hasso Plattner Institute DOI | ||
09:30 15mTalk | Suppose You Had Blocks within a NotebookVirtual PAINT Mauricio Verano Merino Vrije Universiteit Amsterdam, Juan Pablo Sáenz Politecnico di Torino, Ana María Díaz Castillo Teach for All DOI Pre-print | ||
09:45 15mTalk | Interaction vs. Abstraction: Managed Copy and PasteVirtual PAINT DOI Pre-print |