From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Christopher Lemmer Webber Newsgroups: gmane.emacs.devel Subject: Re: What is the most useful potential feature which Emacs lacks? Date: Thu, 14 May 2020 12:35:47 -0400 Message-ID: <87sgg2scd8.fsf@dustycloud.org> References: <87k11htj96.fsf@dustycloud.org> <87pnb7u70r.fsf@red-bean.com> <87y2pvrzho.fsf@dustycloud.org> <87y2pvqhuj.fsf@red-bean.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="84539"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.2.0; emacs 26.3 Cc: Emacs developers , ndame To: Karl Fogel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu May 14 18:36:41 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 1jZGqf-000Lr0-ML for ged-emacs-devel@m.gmane-mx.org; Thu, 14 May 2020 18:36:41 +0200 Original-Received: from localhost ([::1]:52976 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jZGqe-0006hP-KK for ged-emacs-devel@m.gmane-mx.org; Thu, 14 May 2020 12:36:40 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60748) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jZGpr-0005zj-1F for emacs-devel@gnu.org; Thu, 14 May 2020 12:35:51 -0400 Original-Received: from dustycloud.org ([2600:3c02::f03c:91ff:feae:cb51]:49992) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jZGpq-0002CB-0X for emacs-devel@gnu.org; Thu, 14 May 2020 12:35:50 -0400 Original-Received: from twig (localhost [127.0.0.1]) by dustycloud.org (Postfix) with ESMTPS id 1CFDA265E6; Thu, 14 May 2020 12:35:48 -0400 (EDT) In-reply-to: <87y2pvqhuj.fsf@red-bean.com> Received-SPF: pass client-ip=2600:3c02::f03c:91ff:feae:cb51; envelope-from=cwebber@dustycloud.org; helo=dustycloud.org 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.0 X-Spam_bar: ++ X-Spam_report: (2.0 / 5.0 requ) BAYES_00=-1.9, FUZZY_AMBIEN=0.552, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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:250260 Archived-At: Karl Fogel writes: > If the proposed starter pack is going to mitigate effects like that > for newcomers, it can only do so by making the keybound functionality > space sparser -- which of course then lowers the reward-for-investment > rate as the user gains expertise. How do you propose solving that? > Do we make an explicit "I'm ready to leave newcomer mode now" command? > But that requires the user to make a guess about the moment of their > graduation from newcomer to non-newcomer -- and this moment is > mythical, since the learning is a continuous process with no discrete > boundary. I've talked about this with a friend who is a prominent Blender user; the program Blender has a similar issue where it has a perceived amount of UI complexity; a lot of it also because things were foreign. (It also has not quite as much but a similar-ish level of extensibility.) Users for years complained that the program is inaccessible. Apparently they did go through many UI improvements and eventually the UI did get much easier to use (last time I opened it up though, since my experience was from much older versions, *I* was confused... eg they switched the order of right and left mouse buttons to be what other programs do). For years, many of the suggestions for improving it though were around changing or removing features. It seems that recently they have made many changes and managed to not remove features... I wonder how they did it? New users seem to be increasingly happy with the changes. But of course, some still complain that it's "too complicated", but a certain amount of this is a domain problem: Blender chooses to be a powerful 3d tool, and to a certain degree there will always be a certain amount of overwhelmingness to it that's unavoidable. Notably, this is also true with the command line, which is also something that many have to become convinced to become unafraid of. Here are two lessons that I've thought about since those Blender conversations though: - One thought is: you can change the defaults to be not what the current group is familiar with, but what matches the mainstream... and do compatibility in the *opposite* direction. What if instead of turning on cua-mode, you turn on legacy-mode? I know this won't be a popular choice here, but it's worth proposing. When I opened Blender again, I reversed the mouse buttons because it was more "what I was used to from the old days" since Blender (like Emacs) made some convention decisions before there was a "mainstream choice". But I could set it back. Notably this happened in a small way in emacs already: the scrollbars moved from the left to the right by default. Well! I rebound them back. But I'm glad they're in the right by default now: that's the right decision. Still, this is maybe a harder sell for eg many of Emacs' keybindings, and the history list is very long on things like "kill"... I suspect the current community would be up in arms too much to accept such change. But it's worth proposing the complete alternative. Let's not forget: some ideas in emacs are the way they are because they're more powerful. Some of them are the way they are because Emacs predates modern UIs. Maybe the result for what we choose to (not) do is the same. But we shouldn't forget that these are (sometimes, not always) two different things. - An alternate line of thinking mentioned by my friend, frustrated by the calls to "streamline Blender", was to bring up a talk or paper or something they heard about Super Mario Bros being an excellent first UI: the game has a significant amount of complexity, but that complexity is *gradually introduced to the player*, and in an intuitive way. I don't know what talk or paper or article they were talking about, but this article has some degree of summary: https://medium.com/swlh/the-perfect-game-tutorial-analyzing-super-marios-level-design-92f08c28bdf7 You enter the world, you find out you can move to the right. But you keep moving to the right, you run into your first enemy and die. You discover jump. You try to jump, you accidentally hit this block above you, it does something interesting. You get far enough along in the level, you've absorbed those patterns already... so now you get to encounter new challenges. Eventually new game elements being introduced becomes more rare, and instead you reach the level of combinatorial introduction of elements together. What I like about the latter approach is it doesn't suggest needing to switch between a binary transition point of "beginner mode" and "expert mode". Instead, you have a gradual "just in time" introduction of complexity. Now, how to map that to Emacs? I'm not sure yet... but maybe it's a perspective worth starting from that allows for easing in newcomers without throwing out expressive power. Or maybe I just play too many video games, and that's why I appreciate the analogy. :) - Chris