emacs-devel
[Top][All Lists]
Advanced

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

Re: Customize buttons that change user'scustomfileshouldaskforconfirmati


From: Robert J. Chassell
Subject: Re: Customize buttons that change user'scustomfileshouldaskforconfirmation
Date: Thu, 10 Feb 2005 23:45:25 +0000 (UTC)

   IMO, the beauty of Customize is that it hides all the nitty gritty
   details that no users (novices or experts) need to worry about.

Emacs describes itself as

    extensible, 
    customizable, 
    self-documenting, 
    real-time, 
    display.

Nowadays, few environments work just on a line, not on a
two-dimensional display, and few are so slow as to be non-real-time.
The real-time and display features are old.

I presume that most environments have enough built-in documentation. 

But not all environments are as readily extensible and customizable,
even now, a generation later.

For example, I do not know how to extend my Enlightenment window
manager as well as the SCWM window manager.  I know that I can; I just
do not know how to do so readily.

Being able to extend and customize _readily_ is key:  if it is not
easy for me to change characteristics that are not very important to
me, I won't.  I will suffer.  Or, to put the practice more positively,
I will adapt.

However, when it is important that I extend and customize and when it
is easy to extend and customize, I will.

That is why I dislike a car with a dashboard that never let's me see
anything; why I dislike car which requires my mechanic to purchase a
special device to find out what is going on.  

The information should be readily available.  And nowadays, with cheap
displays of a few lines, and with already existing computers, an
`Advanced' or `Mechanics' output has a very low incremental cost.

The key is to satisfy both novices and experts.  (That is why I talked
about an `Advanced' or `Mechanics' output for a car display; mostly,
you don't want it, unless you are an experienced driver or a
mechanic.)

Fortunately, with modern computers and computer displays, it is easier
(but not easy) to satisfy both novices and experts now than in the
past.  Provide a good default interface for novices and also a way for
that novice to become an expert without too much trouble.

Back in 1984, which is now more than 20 years ago, I used a software
program that enabled just this:  it was easy to use the mouse and the
(no longer produced) windowing system to mark and move text.  After I
got used to that, I then tried out the various keyboard commands and
learned those.  They were much faster.  It would have been easier for
me if the menu items had listed the keyboard strokes, as Emacs does,
but the menu did not.

The point is, I went from the easier to the harder, from those forms
of command which were easier to learn but which also wasted my time
(but not in comparison to the mechanical typewriter I had used
previously) to those forms of command which were harder to learn but
the most efficient the technology could provide.

In Emacs, the Customize user interface enables a person to avoid
having to learn to write

    (setq baud-rate 28800)

in his .emacs file, but it should make learning that easy.  After all,
after first writing it, the person may need to change the speed,
perhaps to 38400.

It turns out -- I know this from experience -- that editing an
existing value is often easier and quicker than reusing the Customize
interface.

For example, I found it easier and quicker to see in reality the
difference between "dodgerblue3" and "dodgerblue4" by changing the
number 3 to a 4 in my .emacs file than by changing that number with
the Customize user interface.  (Earlier, I picked "dodgerblue" by
looking at the sample provided by the Customize interface.)

Those who do not wish ever to program in Emacs Lisp should always use
the Customize user interface.  The option to move to a more efficient
user interface should be up to the person.  

In some cases, the cost of learning is higher than the expected
return.  I use the Customize user interface to first set a face.  I do
not understand faces and have not found it worth the effort to learn
about them.

Thus, creating a user interface is difficult.  Not only must it
satisfy expert programmers, like many of the people on this list, it
must satisfy novices and experts who do not know or have forgot.

Although I hardly ever use it, I think the menu interface is
excellent.  It enables you to move, if you wish, from mouse commands
to keystroke commands, and to move readily.  And it tells you some of
the commands that are available, which is useful, too, if you have
forgot or did not know of them.

That is why I think it is so important to create a program that
provides user interfaces for both novices and experts.  That is why
Customize should not only do its job, but make it easy for a person to
learn.

-- 
    Robert J. Chassell                         
    address@hidden                         GnuPG Key ID: 004B4AC8
    http://www.rattlesnake.com                  http://www.teak.cc




reply via email to

[Prev in Thread] Current Thread [Next in Thread]