Thu 6 Apr 2017 13:30 - 14:00 at D0.07 - Research Papers 5 Chair(s): Elisa Gonzalez Boix

Live programming environments enable programmers to edit a running program and obtain immediate feedback on each individual change. The liveness quality is valued by programmers to help work in small steps and continuously add or correct small functionality while maintaining the impression of a direct connection between each edit and its manifestation at run-time. Such immediacy may conflict with the desire to perform a combined set of intermediate steps, such as a refactoring, without immediately taking effect after each individual edit. This becomes important when an incomplete sequence of small-scale changes can easily break the running program.

State-of-the-art solutions focus on retroactive recovery mechanisms, such as debugging or version control. In contrast, we propose a proactive approach: Multiple individual changes to the program are collected in an Edit Transaction, which can be made effective if deemed complete. Upon activation, the combined steps become visible together.

Edit Transactions are capable of dynamic scoping, allowing a set of changes to be tested in isolation before being extended to the running application. This enables a live programming workflow with full control over change granularity, immediate feedback on tests, delayed effect on the running application, and coarse-grained undos.

We present an implementation of Edit Transactions along with Edit-Transaction-aware tools in Squeak/Smalltalk. We asses this implementation by conducting a case study with and without the new tool support, comparing programming activities, errors, and detours for implementing new functionality in a running simulation. We conclude that workflows using Edit Transactions have the potential to increase confidence in a change, reduce potential for run-time errors, and eventually make live programming more predictable and engaging.

Thu 6 Apr

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

13:30 - 15:00
Research Papers 5Research Papers at D0.07
Chair(s): Elisa Gonzalez Boix Vrije Universiteit Brussel
13:30
30m
Talk
Edit Transactions: Dynamically Scoped Change Sets for Controlled Updates in Live Programming
Research Papers
Toni Mattis Hasso Plattner Institute, Patrick Rein Hasso Plattner Institute, Robert Hirschfeld HPI
Link to publication DOI
14:00
30m
Talk
What Is the Best Way For Developers to Learn New Software Tools? An Empirical Comparison Between a Text and a Video Tutorial
Research Papers
Verena Käfer Universität Stuttgart, Daniel Kulesz Universität Stuttgart, Stefan Wagner Universität Stuttgart
Link to publication DOI
14:30
30m
Talk
An Analysis of Introductory Programming Courses at UK Universities
Research Papers
Ellen Murphy University of Bath, Tom Crick Cardiff Metropolitan University, James H. Davenport University of Bath
Link to publication DOI