From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tom Gillespie Newsgroups: gmane.emacs.devel Subject: Discoverability (was: Changes for 28) Date: Tue, 8 Sep 2020 16:17:29 -0700 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28508"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Sep 09 03:14:14 2020 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 1kFogg-0007KL-6G for ged-emacs-devel@m.gmane-mx.org; Wed, 09 Sep 2020 03:14:14 +0200 Original-Received: from localhost ([::1]:42192 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kFogf-0003Cz-87 for ged-emacs-devel@m.gmane-mx.org; Tue, 08 Sep 2020 21:14:13 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55854) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kFmrw-0001qs-Pv for emacs-devel@gnu.org; Tue, 08 Sep 2020 19:17:44 -0400 Original-Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:37007) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kFmrv-0003ij-0t for emacs-devel@gnu.org; Tue, 08 Sep 2020 19:17:44 -0400 Original-Received: by mail-wr1-x429.google.com with SMTP id z4so918800wrr.4 for ; Tue, 08 Sep 2020 16:17:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=iXCkbZObYeeoXmgZsVLn38Sdjk9nTz0v7HiwGG13cX0=; b=mw6DZM+NIUoQWT0vhXlJA0UZ32JG628D+AYQTqnjPk8InlbP1oUYr57XDQR/VMEuEU vBh6nsNCG+PhnT2Q3XtJKFxecR1eRUob5mvCtn9cRN80qoM57jOhDDd7P8ksv6KSuuvd AgHHZFWacuOgRU9+WtORQTxhIhxDaxP5EP2EHwBtVpcFJWJ52tr+tyqpU7B7tQDKtEOy gPQasuofJaH+Vf0yb+Hm/bTuki0vvuX2f9sOzbBu9rLvDWYOChTbYXDBeya+UOHFVYx5 SseTVReopf4KP0nJEnhv6/Rdvo2Fv/0/vqQEo36RzK/Em2vB3PIRelfciicJ+9i4pJ3R UkJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=iXCkbZObYeeoXmgZsVLn38Sdjk9nTz0v7HiwGG13cX0=; b=uSA//oTxuKQBkjOIhRGiIJ6YUwSuRCDxdMtYU/qvS+Mcx8lMEmxVDWapE4i6AZl43m m6nTHF0L3ggdit0xEQZczvUFVDVA/TWsBnZgdJ45YQWC7/FZolzNahLXHiyPN0dzgu7S yEJqi1TpumVGpeRw3SmY4UZ2g9XezB5FuPpPnZzYNFy15/Oj+YVZk3hcq/XN7zqey2GS uiF3RoEvwHMcwgyghjFQnaf55X3mT99DfELij502oLSzr22F2qdeo8y6ReAaUb/Nets2 IoGbCdvFUuW9wHZD8upOuCEsxboTuVuzbdVnzYwCwHP2rjAUSBa8LNYEjVjZD/jd0ZJz AG8w== X-Gm-Message-State: AOAM533rJtW2SR/LuSMGgYo3tdJEJmSCkmmcOieIaJUKGQGXQbv2G40D Wgsn6oSgzZfudBPSbOG1NkIgFuJLvUGnb4dPvXu+ZfxCHeY= X-Google-Smtp-Source: ABdhPJw5T0fuELQofQz632T/9LQ42CQkz0reE6OpkluwK9hI8PSB/v/Ttr04HQ6UlheaxngEUbA20YrPkcr/VL38AfE= X-Received: by 2002:adf:f290:: with SMTP id k16mr995751wro.124.1599607060762; Tue, 08 Sep 2020 16:17:40 -0700 (PDT) Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=tgbugs@gmail.com; helo=mail-wr1-x429.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 08 Sep 2020 21:13:44 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:254829 Archived-At: Hi all, There have been a bunch of great discussions in the Changes for emacs 28 thread. Per request I am responding with proposals in a separate thread. I have three concrete proposals distilled from the original thread, followed by a summary of what I see as a common goal that everyone could work toward -- discoverability. Best! Tom Three proposals related to making Emacs functionality more discoverable. 1. Add the Describe sub-menu to the top in addition to having it as a sub-menu in Help. 2. Have a set minimal configs, created by community experts, that show off the configuration space of Emacs, including configurations that would be familiar to users of other popular tools. 3. Maintain the celebration of the diversity of Emacs use cases in a separate, but easily accessible repository. This could include things like the starter kits. This point is primarily inspired by the fact that the default core of Emacs by itself cannot be all things to all people, but that doesn't mean that we can't display the fact that when configured accordingly, it can be all things to all people. I want to bring up what I see as the fundamental challenge that everyone in that thread seems to be trying to address, or perhaps the common goal we are all trying to work toward. Namely the goal of discoverability. This is not a challenge unique to Emacs, the whole world is facing it, flooded with mountains of data, Emacs happens to be ahead of the curve since it has more features than any other single piece of software that I know of. To give an example of the extent of the challenge, I have been thinking in this area for quite awhile, and yet had no idea that CUA mode existed under that name until reading the original thread! Maybe I had spotted it in passing, but I had no idea what it meant. Maybe I didn't look hard enough. I knew that someone must have created something along those lines, it is an obvious thing to do, but I never managed to spot it in the options menu. I had a similar experience with the Describe sub-menu. When I'm exploring a new mode I regularly explore the menu to see what functionality is present. I also learned C-h k, C-h m, and friends and used them for years. Thus imagine my consternation when I discovered that there was a whole sub-menu dedicated to making Emacs' functionality more discoverable but it was hidden down in the Help menu buried there along with the Emacs Psychotherapist! I pulled Describe out and made it a top level menu item. Adding Describe to the top level menu is the kind of thing that could help with discoverability. It is the tool to discover what is hidden, but at the moment it itself is hidden! Since Emacs is for all intents and purposes an operating system in the same sense that the Linux kernel is an operating system, it has to follow the golden rules for operating systems which is "never break user space." That means that certain seemingly simple and quick solutions, like changing defaults, are forever off the table. As others have pointed out, such solutions only seem simple when you don't account for the tens if not hundreds of thousands of man hours of needless changes they induce across the user and developer base. Yet, there is still the challenge of discoverability. I have been dealing with this in the even more mundane context of trying to simplify the process of installing Emacs for semi-technical users so that they can interact with an Org file. This has proved to be a non-trivial task. There are countless stumbling blocks along the way, and the power and configurability of Emacs, along with the variety of starter kits does not help here, it only bewilders. The paradox of choice at its finest. I have learned the hard way that whatever benefits you expect from having a semi-technical user running Emacs with a particular configuration, the cost of getting them there is still staggeringly high if you don't have the luxury of teaching them yourself. Simplifying the on-ramp without compromising those users' freedoms is a technical challenge, especially when they are already working in non-free conditions. As others have mentioned, the starter kits help for technical users and are valuable community assets that are separated from the core for sound technical and design reasons -- Emacs supports a unimaginable diversity of use cases when acting as a platform on top of which others build. From my perspective, the primary technical objective for core Emacs development has been and should continue to be to maintain and improve that platform with the same dedication to compatibility that it has had since its inception. Empowering users is the core mission and Emacs is the primary instrument. Trying to enshrine a subset of the use cases for the platform in the core of Emacs itself thus should probably be considered to be a bad engineering decision (dangerously close to the "all it's missing is a decent text editor" joke). Could a GNU sanctioned and managed celebration of the diversity of Emacs use cases live in another repository? Probably. Linking to such a resource from C-h C-a would be a revolutionary undertaking, but perhaps worth the attempt. Regardless, I would caution against getting pulled into bad engineering decisions by conflating Emacs the git repository with Emacs the brand. One possible way to address discoverability that I see (among many others already discussed, including elements of this one) would be to have a variety of zero-config options that users can try out at the click of a button. As suggested by others, there are seasoned elisp wranglers out there who could create a set of minimal configs that show off the configuration space and make its diversity visible to users. Categorize the configs and market them (yes, the dreaded word) as being familiar for users coming from a certain background. Presenting these configs and making them discoverable in a way that is consistent with the values of the project and with respect to the sacred space that is C-h C-a is a challenge, but one that I think could be overcome. Given the nature of discoverability, I think that there will ultimately be a variety of approaches that all work together to make the enormous variety of features and workflows that Emacs has to offer more discoverable. The diversity of the use cases and the diversity of the backgrounds of the users makes it almost inevitable.