From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Robert J. Chassell" Newsgroups: gmane.emacs.devel Subject: Re: Customize buttons that change user'scustomfileshouldaskforconfirmation Date: Thu, 10 Feb 2005 23:45:25 +0000 (UTC) Message-ID: References: Reply-To: bob@rattlesnake.com NNTP-Posting-Host: main.gmane.org X-Trace: sea.gmane.org 1108080829 31494 80.91.229.2 (11 Feb 2005 00:13:49 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 11 Feb 2005 00:13:49 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Feb 11 01:13:48 2005 Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1CzORL-00043r-Il for ged-emacs-devel@m.gmane.org; Fri, 11 Feb 2005 01:13:43 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1CzOgA-00013f-VP for ged-emacs-devel@m.gmane.org; Thu, 10 Feb 2005 19:29:02 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1CzObk-0007Nz-4n for emacs-devel@gnu.org; Thu, 10 Feb 2005 19:24:28 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1CzObb-0007Jl-6s for emacs-devel@gnu.org; Thu, 10 Feb 2005 19:24:23 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1CzObZ-0007AN-5P for emacs-devel@gnu.org; Thu, 10 Feb 2005 19:24:17 -0500 Original-Received: from [69.168.108.225] (helo=rattlesnake.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CzO0L-0003S5-Th for emacs-devel@gnu.org; Thu, 10 Feb 2005 18:45:50 -0500 Original-Received: by rattlesnake.com via sendmail from stdin id (Debian Smail3.2.0.115) Thu, 10 Feb 2005 23:45:25 +0000 (UTC) Original-To: emacs-devel@gnu.org In-reply-to: (storm@cua.dk) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org X-MailScanner-To: ged-emacs-devel@m.gmane.org Xref: main.gmane.org gmane.emacs.devel:33225 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:33225 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 bob@rattlesnake.com GnuPG Key ID: 004B4AC8 http://www.rattlesnake.com http://www.teak.cc