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


   Date: Wed, 20 May 92 21:19:09 -0400
   From: "Guillermo J. Rozas" <jinx@martigny.ai.mit.edu>

   The point was made (I believe by Will Clinger) that to be completely
   consistent with the Macintosh philosophy, LOAD would have to accept no
   arguments, and then it would pop up a dialog box for the user to
   specify the file to load.

Though it takes us a bit off the subject, this argument is so wrong that I feel
I have to speak up.

All the GUI philosophy requires is that there be a menu option Load that pops
up a dialog box.  It does not say anything about how LOAD should work.

Quite the contrary: it is a principle of good interactive system design, and
especially of good *extensible* interactive system design, that every operation
the system can perform be available via a call that takes all the parameters of
the operation as arguments (and therefore does not need to invoke the user
interface to ask the user something).  For instance, in this case, this
principle says that a call with the functionality of (LOAD <file>) *must* be
present in the interface available to extension writers.  The argument is
obvious enough: any operation the user might perform, there will sooner or
later be a need to perform programmatically.  What might not be so obvious,
until you've built a few interactive applications, is that this really is true,
even when you don't expect it to be.

Put another way: don't confuse the UI level and the implementation level.  They
should be kept rigorously distinct.

In fact, I don't think there's any design principle that suggests that a
zero-argument LOAD should exist.  What *should* exist is a function that pops
up a file selection dialog and returns the name of the selected file.

(Replies should perhaps not CC the list.)

-- Scott