From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: Customize is only for newbies? [was: use-package.el -> Emacs core] Date: Tue, 10 Nov 2015 06:58:42 -0800 (PST) Message-ID: <665d1f66-6497-48ab-9752-b121aa307724@default> References: <564136F7.2020404@yandex.ru> <877flqe1a4.fsf@gmail.com> <87twoucaxz.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1447169633 32101 80.91.229.3 (10 Nov 2015 15:33:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 10 Nov 2015 15:33:53 +0000 (UTC) Cc: Emacs developers , Dmitry Gutov To: Oleh Krehel , Juanma Barranquero Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Nov 10 16:33:40 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZwAvP-0003Go-7K for ged-emacs-devel@m.gmane.org; Tue, 10 Nov 2015 16:33:35 +0100 Original-Received: from localhost ([::1]:32937 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwAvO-0003YX-NE for ged-emacs-devel@m.gmane.org; Tue, 10 Nov 2015 10:33:34 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwANn-0002aP-Ro for emacs-devel@gnu.org; Tue, 10 Nov 2015 09:58:52 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZwANk-00019E-LV for emacs-devel@gnu.org; Tue, 10 Nov 2015 09:58:51 -0500 Original-Received: from userp1040.oracle.com ([156.151.31.81]:31099) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwANk-00018N-Ex for emacs-devel@gnu.org; Tue, 10 Nov 2015 09:58:48 -0500 Original-Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id tAAEwiWr007708 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 10 Nov 2015 14:58:44 GMT Original-Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0022.oracle.com (8.13.8/8.13.8) with ESMTP id tAAEwhRj015331 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Tue, 10 Nov 2015 14:58:44 GMT Original-Received: from abhmp0014.oracle.com (abhmp0014.oracle.com [141.146.116.20]) by aserv0122.oracle.com (8.13.8/8.13.8) with ESMTP id tAAEwht3007203; Tue, 10 Nov 2015 14:58:43 GMT In-Reply-To: <87twoucaxz.fsf@gmail.com> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9 (901082) [OL 12.0.6691.5000 (x86)] X-Source-IP: userv0022.oracle.com [156.151.31.74] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 156.151.31.81 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:193861 Archived-At: > Customize is for people that aren't yet ready to learn Elisp. Wrong - if you meant "only" for such people. Customize is for anyone who is wise enough to take advantage of type-checking (:type), :set, :initialize, and other Customize features. And Customize (`defcustom') is not only the Customize UI. It includes all of the `custom-*' and `customize-*' functions. > Once they do, it indeed becomes redundant. No, it ("indeed") does not. Unless you do not consider using any of the Lisp functions in cus-*.el as part of Customize. Or unless you are prepared to write your own Lisp to do what they do. (At a certain level, all Lisp code except a very few primitives can be called "redundant".) It is a too common misconception (perhaps especially among near-newbies) that Customize is only for newbies. It's too bad to see folks here propagate the same misconception. That is the wrong message, not only for newbies but for those who are no longer newbies. Too many people think they are being Lispy by using only `setq' to set option values in their init files (and later they wonder why some things don't work, only to be told about :type or about :set functions etc.). > I used Customize when I started out around 5 years ago. > I don't use it now, except for providing it to the > users of my packages. You don't use `custom-set-variables' or `custom-set-faces' or any other `custom*' functions? Or perhaps you use only simple options that have no :set or :initialize triggers or other complications? Or perhaps you don't need type-checking> Or more likely, perhaps the options you use do not have very complex :type control? Too many defcustoms are written with rudimentary :type declarations, essentially trying to turn defcustom into defvar. (And this includes in the Emac core.) Dommage.