From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: xenodasein--- via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Propose to add setup-wizard.el to ELPA Date: Sun, 2 Jan 2022 17:43:59 +0100 (CET) Message-ID: References: <87a6geo4h8.fsf@yahoo.com> <8735m6o349.fsf@yahoo.com> <87pmpamlon.fsf@yahoo.com> <834k6mdu7q.fsf@gnu.org> Reply-To: xenodasein@tutanota.de Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6266"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: eliz@gnu.org, stefankangas@gmail.com Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jan 02 17:46:04 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n43zg-0001Nv-87 for ged-emacs-devel@m.gmane-mx.org; Sun, 02 Jan 2022 17:46:04 +0100 Original-Received: from localhost ([::1]:53142 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n43ze-0001A4-Am for ged-emacs-devel@m.gmane-mx.org; Sun, 02 Jan 2022 11:46:02 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:34262) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n43xk-0000R6-1n for emacs-devel@gnu.org; Sun, 02 Jan 2022 11:44:05 -0500 Original-Received: from w4.tutanota.de ([81.3.6.165]:34184) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n43xh-0005UN-Ue; Sun, 02 Jan 2022 11:44:03 -0500 Original-Received: from w3.tutanota.de (unknown [192.168.1.164]) by w4.tutanota.de (Postfix) with ESMTP id 556001060152; Sun, 2 Jan 2022 16:43:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1641141839; s=s1; d=tutanota.de; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Content-Transfer-Encoding:Cc:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=5dqKGaAiLIcj+8e4ULXwY4WJQaN9HyJ0cqw7GXSzXSE=; b=aOxDCoXuMSiIBYJyCDuuhRo3BB7jvQHp9sse7yyg5VXpLA41PinMhqvvmr+eR9Bj 7g7PLVnB+M7AFvRoaRCq7A+HY36Gy0sGnf1GxAZ8x/JXTN07YjD1huPoVvh2tcoZ9Sf hC7g7txmJlz96DaFQmtbBhZ3o3IW0N44pRp2vIaSF6MF91MiKChQsmNqYc5eaNUBE/a K2h0elVG6pLNlvJMhIcHcxWXOwRsGp6lKSZ3ZiXUHjJaeCxTYH3XspPdCsQX23Lcv+r I1yXk+bH+GIl9JMoo2nZpgspQlhXZiUGJ+ZvxfY5xBa3WGHMY4GpCXsw5lmRSPIEWAa M6f4mj4/ag== In-Reply-To: <834k6mdu7q.fsf@gnu.org> Received-SPF: pass client-ip=81.3.6.165; envelope-from=xenodasein@tutanota.de; helo=w4.tutanota.de X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:283927 Archived-At: https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00136.html From: Stefan Kangas > I don't think you will get a measurable speedup from running `setq' > instead of `customize-set-variable' if the relevant defcustom does not > have an :initialize function. > > The reason I use `setq' in my init is just that it's less typing. > > FWIW, I'd appreciate if we had a > (defalias 'setopt #'customize-set-variable) Using customize-set-variable from Elisp is simply a hack, IIRC it has weird unwanted effects like when saving customizations from interface, it writes everything back into managed custom-set-variables.=C2=A0 It also uses 'user theme, my workaround was just creating a theme for customizations that need computed results.=C2=A0 It is also really slow in comparison to setq, using it continuously seem to make difference, but of course it depends on what user considers slow/bad. https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00135.html From: Stefan Kangas > xenodasein--- via "Emacs development discussions." > writes: > > > FWIW I completely agree with this.=C2=A0 Custom system is a good idea, > > and it should exist; however it has a very long way yet to achieve > > it's purpose.=C2=A0 It is nowhere near JetBrains software's isolation > > of Java from user.=C2=A0 It needs a lot more work.=C2=A0 It is an unfin= ished system. > > Agreed, but I'd invite you to be more concrete.=C2=A0 If you are proposin= g a > redesign, fine, but we'd need volunteers to do that.=C2=A0 If you have > specific proposals for how to improve customize, they are also welcome. I didn't read a majority part of the code, but a complete redesign doesn't seem necessary.=C2=A0 It simply needs a bit more love.=C2=A0 A simple addit= ion example: (defmacro xdn-csetq (variable value) =C2=A0 `(funcall (or (get ',variable 'custom-set) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 'set-default) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ',variab= le ,value)) I agree my takes on Customize so far has been low-effort.=C2=A0 I'd be happ= y to invest in more time into looking up more concrete examples for improvement if: - Someone is already working on it or planning to and need feedback - An entry of TODO/task/plan is looked into being written - A maintainer is looking for specific feedback https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00138.html From: Eli Zaretskii > Improving Customize (or any other major Emacs infrastructure) is > always welcome, of course.=C2=A0 But I'd like to point out a potential > confusion or misunderstanding between the participants in this thread: > I think people might mix Customize's user-facing interface -- the > forms, the buttons, the menus in Custom buffers, etc. -- with calling > Customize functions from Lisp and with its implementation code.=C2=A0 Whe= n > people say here they think Custom has a long way to achieve its > purpose, which of those two they allude to? IMHO both aspects.=C2=A0 Interface is in better shape than trying to use customize from Elisp though.=C2=A0 Interface could use aesthetic improvemen= ts, but the more significant issue is it's coverage of how many kinds of customizations a user can do from it, without touching Elisp.=C2=A0 This is related to package management also, especially for packages outside ELPA. > Customize was designed to be easy on the user from the UI POV, it > wasn't designed to be easy from the implementation POV.=C2=A0 Nor was it > designed to be easy to understand its Lisp forms, because the > assumption was that people who'd use Customize will rarely if ever > look at the forms it produces when you save customizations. Being easier to understand would help with smaller contributions. What I should have said instead is that it is hard to modify, being also tangled with theming system, in comparison to most other packages. A more concrete improvement would be to make it somehow more plesant to work with, when using Elisp only, or to completely isolate it from needing to interact with Elisp.=C2=A0 defcustom could be in C level? Basically people shouldn't have reasons to write these types of complaints: https://www.emacswiki.org/emacs/CustomizingAndSaving#h5o-3 This is a lot less significant problem than making it more comprehensive for non-programmers. Thanks.