[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

restarts and MI as possible omissions



   From: Kent Pitman <kmp@harlequin.com>
   Date: Thu, 18 Apr 96 17:11:59 EDT

   It's not like coming up with a useful restart system involves years of
   funded research; and it's not like there is a single canonical system
   we will all eventually converge upon.  It's simply the case that we
   need to agree to agree for once, instead of agreeing always to
   disagree, and move ahead. This is just a matter of seriously useful
   functionality being poo-poo'd by those who think its absence will make
   either no serious difference or a net gain to the Scheme community.
   And I'm really quite sure they are wrong.  Restarts belong in the 
   language.  Their absence in other languages is not proof that they are
   unnecessary, it is simply a manifestation of the old saying "ignorance
   is bliss".

I agree with this.  Restarts are an essential part of the condition
system.

MIT Scheme implemented something almost identical to the Kelsey
proposal about three years ago.  (The only major difference is that
the MIT system doesn't support MI, but that was just laziness on my
part; if I did it again I'd put MI in.)  That condition system has
been in use ever since, and I've used it extensively during that time.

While I use programmatic restarts only occasionally, I use
_interactive_ restarts all the time.  When the system gets an error
and presents you with a handful of restart choices, in more or less
plain language, it is simply much easier to work with.  Leaving
restarts out of the proposal is just a way to screw users.

A couple of years ago, I predicted to several people that the Scheme
community would be unable to produce a usable condition proposal.  My
reasoning for this prediction is that a usable condition system is
inherently a complicated object, and I've seen little evidence that
this community will accept something complicated -- even if the
complication is inherent in the problem.  The current discussion
hasn't done anything to change my mind.

And what is really scary is that the discussion hasn't even touched on
the condition-type taxonomy, and the guarantees given to the
programmer as to when particular conditions will be signalled.