Are we witnessing the birth of a new interaction paradigm that is not only for software debugging, but also for working with software in general?
Whyline is a debugging tool for Java that allows the user to view and get answers to “Why did...” and “Why didn’t...” questions about program output. During program execution, Whyline captures a trace that is then used to construct a user interface for navigating output history. Users move a slider back and forward in time and select screen elements of interest to expose “Why did...” and “Why didn’t...” questions. In the provided proof-of-concept painting application, the user can view questions, such as “Why did thickness = 5?” and “Why didn’t thickness change?” Whyline is nontrivial and makes use of static and dynamic slicing techniques, called graphs, and various other algorithms. Performance measurements indicate that Whyline is practical for program executions of no more than a few minutes.
In a pilot evaluation study, when asked to locate a bug, Whyline subjects were twice as fast as a group of Java experts using Eclipse 2.1. Ko and Myers concede, however, that this study has limited generality, since it involves only one task and relatively few subjects.
Importantly, Ko and Myers draw attention to the difficulties of adapting the Whyline approach to applications written in several languages and those that cross machine boundaries. A new generation of languages and architectures is required in order to fully realize the potential of the “Why did...” and “Why didn’t...” capabilities.
I strongly recommend this paper to all computer scientists.