From: Christoph Wedler <christoph.wedler@sap.com>
To: help-gnu-emacs@gnu.org
Subject: Re: In defense of Customize [was: Trying to right-align my window on startup]
Date: Tue, 28 Jan 2014 16:17:01 +0100 [thread overview]
Message-ID: <6hrwqhkjfv6.fsf@sap.com> (raw)
In-Reply-To: mailman.11921.1389721075.10748.help-gnu-emacs@gnu.org
Drew Adams <drew.adams@oracle.com> writes:
[...sequence of citation does not match sequence in cited article...]
> I hardly think that Per Abrahamsen is a wimp, wrt Lisp or Emacs,
> at least. http://www.emacswiki.org/PerAbrahamsen
Just to put the rest of this posting into context: neither do I.
Everybody who has written LaTeX documents knows that Per has done an
excellent job with AucTeX - just one example...
>> > > But (IMHO) too many people ignore Customize, often because
>> > > they've gotten the impression somehow that it is for non-Lispers
>> > > or wimps.
>> >
>> > I just hate its UI.
I do not hate Customize, but I think that Customize does not solve the
main problems many users had and have with customizing Emacs. The UI is
just a minor point.
So which were the issues most users had with customizing Emacs before
the advent of custom.el:
1. Exploring customization options.
There were too many customization option to grasp (I'm not against
having many options!), and one could not easily grasp the
interdependence between different options.
2. Doing the customization.
Users had no problems using a `setq' in combination with an boolean,
integer, string value, or a enum-like use of symbols, or a simple
list consisting of these types. `global-set-key' was also almost
ok.
They had (and have - that is the point!) a problem with having to
define a function/form which contains the necessary customizations
and having to add this to some hook, provide it to eval-after-load,
or ...
3. Re-using customization (parts) of other Emacs users (or own on other
machine)
Many users re-used parts of the ~/.emacs files of others. The
problem was that these settings were a mixture of personal setting
(e.g. user-full-name), local / system-dependent settings
(grep-find-command), questions of taste (face colors), etc and
tended to grow old.
Which issues does custom.el solve?
1. Number of options: well, nothing has changed. People are still
overwhelmed by the sheer number of options. People are also puzzled
if changing some option does not have any effect, because it depends
on other options to be set to a specific value...
Yes, custom helps a bit with exploring these options, but actually
mainly on the intra-package level (which Lispers could do for
themselves by looking at the defvar in the el file).
If I'm interested in the possibilities for auto-completing some
symbol/word, I still have to know them: abbrev-mode, dabbrev-expand,
complete-tag (but no corresponding imenu-...), and in a wider sense:
ido, ... To be fair: this is diffucult.
2. Positive: face customizations became easier.
Otherwise: nothing has changed much. Yes, there is some type
checking on the values now. But to be honest, I do not see the
point that people do not have to use Lisp to set the value of some
option to some Lisp function or even sexpr.
Setting some values in specific mode (or mode groups) is not
possible. Defining key and menu bindings: nothing, let alone for
something like the mode-line, ...
3. Positive: custom-themes could be a step in the right direction
Negative: sharing customization settings is now actually more
difficult, because auto-generated custom files lack comments which
explain why default values have been changed, and because they are
ordered alphabetically and not topic-wise. Settings which work on
different machines are harder to do.
In short: custom.el made things a bit easier which were easy before and
does little to help with the others (and unfortunately these two are not
synonyms for "many users want to change it" and "should be left to
advanced users")
- `gc-cons-threshold' is customizable (which non-Lisper should change
that?), but
- defining a keybinding for C programming requires to define a function
which has to be added to some hook...
So instead of spending time on some UI, things would IMHO improve by the
following (doing the UI later)
- Define top-level forms for customizations which many people want to
do - something like
(cus-set 'indent-tabs-mode t)
(cus-set 'indent-tabs-mode nil :mode prog-mode)
(cus-define-key "some binding" command :mode c-mode)
Currently, many (mostly minor-mode) packages define their own way of
offering something like that (see
e.g. font-lock-maximum-decoration). Otherwise, people have to add
some function to some hook.
- To handle issue 1: make less options customizable: make package
authors define 5 good customization options, do not propose to make
their 30 variables (user options) customizable. These customization
option just contain "easy" values: integer, string value, or a
enum-like use of symbols, or a simple list consisting of these types.
Most of these options could actually influence the values of some
variables - something like custom-sub-themes (defined in the package)
or something like c-style. Advanced users could easily define their
own custom-sub-themes / styles - "custom" and stand Elisp co-exist
nicely.
Regards,
Christoph
next prev parent reply other threads:[~2014-01-28 15:17 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <<B67C92F68785104E8816FEEE2B44C9346F33C8FD@TEMCAS01.peinet.peinc.com>
[not found] ` <<83r48idw6z.fsf@gnu.org>
[not found] ` <<B67C92F68785104E8816FEEE2B44C9346F33C978@TEMCAS01.peinet.peinc.com>
[not found] ` <<83mwj5ekrs.fsf@gnu.org>
[not found] ` <<B67C92F68785104E8816FEEE2B44C9346F33D269@TEMCAS01.peinet.peinc.com>
[not found] ` <<28ab7799-fdc5-47c4-9ac0-f7db66771e7e@default>
[not found] ` <<83iotsdh9n.fsf@gnu.org>
2014-01-09 21:02 ` Trying to right-align my window on startup Drew Adams
2014-01-11 14:45 ` Juanma Barranquero
2014-01-11 17:35 ` poor Customize [was: Trying to right-align my window on startup] Drew Adams
[not found] ` <mailman.11630.1389461775.10748.help-gnu-emacs@gnu.org>
2014-01-13 15:11 ` jack-mac
2014-01-13 17:06 ` Drew Adams
[not found] ` <mailman.11626.1389451551.10748.help-gnu-emacs@gnu.org>
2014-01-14 9:24 ` Trying to right-align my window on startup Rusi
2014-01-14 17:37 ` In defense of Customize [was: Trying to right-align my window on startup] Drew Adams
2014-01-14 19:32 ` session.* files (was: In defense of Customize) gottlieb
2014-01-14 19:52 ` Peter Dyballa
2014-01-15 10:29 ` In defense of Customize [was: Trying to right-align my window on startup] Phillip Lord
2014-01-15 17:28 ` Drew Adams
2014-01-16 10:06 ` Phillip Lord
2014-01-16 15:33 ` Drew Adams
2014-01-14 17:53 ` Trying to right-align my window on startup Emanuel Berg
2014-01-14 17:57 ` Marcin Borkowski
[not found] ` <mailman.11925.1389722262.10748.help-gnu-emacs@gnu.org>
2014-01-14 18:15 ` Rusi
2014-01-14 18:19 ` Emanuel Berg
2014-01-15 4:44 ` Rusi
[not found] ` <mailman.11921.1389721075.10748.help-gnu-emacs@gnu.org>
2014-01-18 2:59 ` In defense of Customize [was: Trying to right-align my window on startup] Rusi
2014-01-18 4:42 ` Emanuel Berg
2014-01-18 15:31 ` Rusi
2014-01-28 15:17 ` Christoph Wedler [this message]
2014-01-28 18:35 ` Emanuel Berg
2014-01-29 10:57 ` Phillip Lord
2014-01-29 13:23 ` Stefan Monnier
2014-01-29 16:54 ` Phillip Lord
2014-01-29 18:26 ` Stefan Monnier
2014-01-30 9:59 ` Phillip Lord
[not found] ` <mailman.13090.1390993048.10748.help-gnu-emacs@gnu.org>
2014-01-29 16:52 ` Emanuel Berg
2014-01-29 17:19 ` Phillip Lord
[not found] ` <mailman.13107.1391015968.10748.help-gnu-emacs@gnu.org>
2014-01-29 18:21 ` Emanuel Berg
2014-01-29 0:47 ` Drew Adams
[not found] ` <mailman.13068.1390956492.10748.help-gnu-emacs@gnu.org>
2014-01-30 10:14 ` Christoph Wedler
2014-01-30 13:23 ` Stefan Monnier
2014-01-30 16:06 ` Drew Adams
[not found] ` <mailman.13194.1391088219.10748.help-gnu-emacs@gnu.org>
2014-01-30 16:15 ` Rusi
2014-01-30 18:44 ` Emanuel Berg
2014-01-31 9:56 ` Phillip Lord
[not found] ` <mailman.13338.1391162177.10748.help-gnu-emacs@gnu.org>
2014-01-31 12:08 ` Rusi
2014-01-31 20:41 ` Emanuel Berg
2014-01-31 20:39 ` Emanuel Berg
[not found] ` <mailman.13229.1391098001.10748.help-gnu-emacs@gnu.org>
2014-01-31 6:54 ` Rusi
2014-01-31 17:50 ` Christoph Wedler
2014-01-08 20:11 Trying to right-align my window on startup Mickey Ferguson
2014-01-08 21:01 ` Eli Zaretskii
[not found] ` <B67C92F68785104E8816FEEE2B44C9346F33C978@TEMCAS01.peinet.peinc.com>
2014-01-09 6:23 ` Eli Zaretskii
2014-01-09 20:16 ` Mickey Ferguson
2014-01-09 20:30 ` Eli Zaretskii
2014-01-09 20:32 ` Drew Adams
2014-01-09 20:36 ` Eli Zaretskii
2014-01-09 20:41 ` Marcin Borkowski
2014-01-09 21:04 ` Drew Adams
[not found] ` <mailman.11466.1389300108.10748.help-gnu-emacs@gnu.org>
2014-01-09 21:43 ` Sebastien Vauban
2014-01-09 22:23 ` Drew Adams
2014-01-10 22:31 ` Mickey Ferguson
2014-01-10 23:09 ` Drew Adams
2014-01-11 1:17 ` Mickey Ferguson
2014-01-11 3:07 ` Drew Adams
2014-01-13 23:14 ` Mickey Ferguson
2014-01-14 4:55 ` Eli Zaretskii
[not found] ` <<83k3e8dhj9.fsf@gnu.org>
2014-01-09 21:02 ` Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6hrwqhkjfv6.fsf@sap.com \
--to=christoph.wedler@sap.com \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.