2016-06-17

emacs M-x customize, good or bad?

Clément Pit-Claudel gave a great answer about why pulling stuff out of custom-set-variables to setq may not work. See comment at Emacs: Stop Cursor Going into Minibuffer Prompt#comment-2734992432

also see comment by bhyde at Emacs's Customization Tutorial#comment-2663524352

the bottom line is that, if you pull out lines from custom-set-variables and change it to setq, it may not work.

i wasn't too pleased about this. This means, the defcustom is more complex than otherwise acting as defvar with a User Interface.

on this subject, there's the question about whether emacs's customize system is a good thing. (it was controversial). I think it's a mixed bag.

There's elisp, which is the core of all emacs and all customization. Why should we add a layer? Now, there are 2 ways to do the same thing. Also, the Graphical User Interface layer isn't complete, as not all customization can be done with it. (e.g. hooks, which is rather quite common and basic.) On the other hand, it does provide a explicit structure to declare what variables are user preference related, and with it, a text based graphical user interface.

but, it isn't a full system, and is not required nor enforced in packages. The consequence of this is that, there's inconsistency.

in general, coding in elisp is full of slack. There's no API, nothing is enforced, and you can do something low level or high level or whichever way. This in intentional from rms. XEmacs had packages since 1991 or so. rms refused it, till recently. I think rms believes this shapelessness helps propagate FSF free software. As in, it forces people to dig into code, not a blackbox API.