[plt-scheme] Log "every change in" Definitions and Interactions...
On Jan 23, 2009, at 17:28, Robby Findler wrote:
> The logging feature in DrScheme automatically records the
> definitions and interactions windows each time the user hits the
> "Run" button.
>
> Still, the way to record keystrokes (or perhaps better: editor
> actions), would be to use the tools interface to connect to drscheme
> and monitor it.
John McCarthy has an idea called Elephant [1], for programs "that can
refer directly to the past." ("An Elephant never forgets.")
If one wants to track whether the Design Recipe is being followed,
there could be a new tool or mode in DrScheme that would add in
templates for things one is supposed to fill in. DrScheme would then
know and could remember the order in which Design Recipe elements were
followed.
DivaScheme [2] already does this a little: start typing an S-
expression, and DivaScheme lays out a mini-template to fill in.
On the plus side, having Design Recipe templates helpfully inserted in
response to user commands or DrScheme HAL-like insight [3] might
encourage people to follow the Design Recipe more often. On the down
side, if someone didn't want to use inserted templates every time, the
measurement of "effectiveness of proper usage" of the Design Recipe
would still have to be done by looking at code changes without
semantic markers. Also, we don't want HAL to control us.
A human expert watching a person use the Design Recipe can tell
immediately when someone skipped a step either deliberately (for a
good or not-so-good reason) or out of ignorance. The human expert
knows what the next step is supposed to look like. Maybe pattern
matching could be used to recognize recipe elements that are in
various stages of completion. There could be a library of patterns
for common errors in the application of the recipe.
Geoffrey
[1] http://www-formal.stanford.edu/jmc/elephant.html
[2] http://www.cs.brown.edu/research/plt/software/divascheme/
[3] http://en.wikipedia.org/wiki/HAL_9000#The_future_of_computing