From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: TEC Newsgroups: gmane.emacs.devel Subject: Re: Changes for emacs 28 Date: Wed, 09 Sep 2020 02:15:24 +0800 Message-ID: <87sgbsb0eb.fsf@gmail.com> References: <87y2lkb6kb.fsf@gmail.com> <9A4FA038-CCFD-45DF-8B57-E348AFF951D9@gmail.com> 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="1295"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.4.13; emacs 27.1 Cc: Gregory Heytings , emacs-devel@gnu.org To: Yuan Fu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Sep 08 20:22:42 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 1kFiGP-0000Dk-TN for ged-emacs-devel@m.gmane-mx.org; Tue, 08 Sep 2020 20:22:42 +0200 Original-Received: from localhost ([::1]:49164 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kFiGO-0005OH-U4 for ged-emacs-devel@m.gmane-mx.org; Tue, 08 Sep 2020 14:22:40 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47314) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kFi9U-0001MR-3b for emacs-devel@gnu.org; Tue, 08 Sep 2020 14:15:32 -0400 Original-Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]:35465) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kFi9R-0006lp-Ql for emacs-devel@gnu.org; Tue, 08 Sep 2020 14:15:31 -0400 Original-Received: by mail-pf1-x436.google.com with SMTP id o68so11657091pfg.2 for ; Tue, 08 Sep 2020 11:15:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:in-reply-to:message-id :date:mime-version:content-transfer-encoding; bh=jkuZXGmAzDCml1VikRTbde1yKvhbIbayKi/f4UXQpw8=; b=KM5LOEVyhavkt4OSQnllXaB5qHy7lQVZE66QIk3GsHo/ovIkQSu2lOfu2nUh9fdylw +qiuRbm0evjs+aeUwGmDbG10o0rleQPCIKltcSKLJnMbLWuvsm4eJk2shQLfRcjVZwqD ZkBJ++q+ILW2KtOCsXKxpvDx8Qg3dycWC13Fl/5R9KMiEtIbisQo5e4dka+l4AQ+3wmX gdstOdNzR08jUN6Xf8qFLv6xC3ui+jSruzqFQ+HInAuzJ+nJs27tohGUeZ5wKPuAQEUP EfLxO8fyENF2/4bwLI5z/lHzLuB28W0WtZjdYiA5iWRm+20kZeFekOsCRZSQBtY78Ky2 lGgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:message-id:date:mime-version:content-transfer-encoding; bh=jkuZXGmAzDCml1VikRTbde1yKvhbIbayKi/f4UXQpw8=; b=eLerPDvtnh6Hl1gBjJLJB+DmbgJveUpl+cb8gNo+aIvZI0bWQDx9wj0qT8vKVW7Zj+ QPqO0eMTEI+i0Sqkqn0/IO7StktqkEsnGHrpKgF+6a3yivZhJWoJUn+dlWmlz/LnBzZW ORKP+pNLmEagL+bDsHhsEpG8ZQWDwUwlJ5mp99vfJxlRyP5hZPt3ORGBm6AbngFFJ3CA apENymfnNt1XQYHdQLSADbSqWMyvyCJQJ9qWKom7VxtZisYftRAaaRntl217l/YrTun4 fO/lzXgs+rXwClA32JD99ynJLkYeCayOclMG24LjC2omY0m8c9MQ1uqkhuiSq4QJClFv S9LA== X-Gm-Message-State: AOAM5337xhrhON5MBOFaHSW4EAFvuV94IkKXk4b/chdPu73HM5Q9BoB1 rA1FYKNZOf6ALYJ5t+qWcwI= X-Google-Smtp-Source: ABdhPJznmZ3AWVSLqtnCiCuUOey4SvC7A7pWZTOudxwMx85ynQ/D04QBdjxxCUVEC3X1jO9+jMNq/w== X-Received: by 2002:a17:902:7896:b029:d0:b9dd:edae with SMTP id q22-20020a1709027896b02900d0b9ddedaemr295792pll.0.1599588928227; Tue, 08 Sep 2020 11:15:28 -0700 (PDT) Original-Received: from localhost (180-150-91-8.b4965b.per.nbn.aussiebb.net. [180.150.91.8]) by smtp.gmail.com with ESMTPSA id s16sm23268pgl.78.2020.09.08.11.15.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2020 11:15:27 -0700 (PDT) In-reply-to: <9A4FA038-CCFD-45DF-8B57-E348AFF951D9@gmail.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=tecosaur@gmail.com; helo=mail-pf1-x436.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 14:21:57 -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:254793 Archived-At: NOTE: I accidentally sent a draft before this. Please disregard it. Yuan Fu writes: > That=E2=80=99ll be very helpful, since many people on this ML are trying = to > imagine what a new user needs and can=E2=80=99t figure out. Even myself, = just > started using Emacs 3 years ago, can=E2=80=99t remember what problem I fa= ced > as a beginner anymore. All right then, I'll try to give a dot point version of my journey into Emacs, and background/context. I hope this ends up being useful :) * Prior editor experience (~2y in each) : total ~8 years - I started off several years ago in IDLE (yes, that Tk python thing) - I then used Komodo edit for a bit, started doing web stuff - I shifted to Brackets for web stuff - I shifted to VS Code, for everything * VS Code - VS Code is a great editor - Everything just worked=E2=84=A2, and the experience was generally smooth - Used VS Code for: Python, Web(HTML,CSS,JS,TS), Rust, LaTeX - I started writing /lots/ of LaTeX, so much that I became (for a period) the #3 contributor to the 'main' LaTeX extension (~500k users) and then went off and developed an extension to that extension :P (https://marketplace.visualstudio.com/items?itemName=3Dtecosaur.latex-uti= lities) - Why does this matter? At this point I'm *heavily* invested into VS Code. I'll need to be quite confident of a better experience in order to switch. * VS Code pain points - I like windows. VS Code's windows are independent electron instances. Not good (for UX, or RAM). - Extension API felt a bit limiting a few times, I'd gaze at open issues/PRs in desperation that they'd actually be resolved * Emacs, the warmup - I'd heard a few things that sounded interesting about Emacs (read: faint inclination to see what the fuss was about) - I like living in my editor (as long as it's comfortable), I didn't like it when I had to type into a barren textbox on the web (e.g. writing a GitHub issue). - I became aware of the client/server archetecture, and EmacsAnywhere - Installed EmacsAnywhere, and grabbed Spacemacs because it looked trendy (I'm serious, I /care/ about visuals, and the Spacemacs web page and screenshots were most attractive) - Used a little bit, on and off, was pretty underwhelmed. - Tried setting a few things in Spacemacs, found to be a pain --- recall I'm coming from a settings.json, and the layers seemed complicated - Experience didn't end up meeting the Hype for me. Massive start up time also impeded further experimenting. - Fell out of use The good: - Prompts on install asking how I wanted to have the main aspects set up - Prompts on opening a new file type for the first time saying "We have a layer for this, would you like to install it?" The bad: - Felt clunky to use - Felt quite opaque, like I didn't understand what I was doing and how it was working - Sloooow to start TLDR; gave Spacemacs a brief go, felt overwhelmed and underwhelmed at the same time. Didn't end up going beyond a novelty. * The drive to try Org-mode - A few months later I started a Stats project using Jupyter Lab - I missed my proper editor experience - Version control was a pain - I didn't like having to choose between opening a local server + browser, or trying to parse json >:( - Did I mention I missed the 'full' editor experience? Just simple stuff like select word, replace matches. Trying to make any global (all cells) edits was a pain - State was constantly a pain * Org-mode, my ramp into Emacs pt.1 - vanilla - I'd heard about Org-mode as a thing markdown + execution - Maybe this could be better than Jupyter? - However... I didn't like Spacemacs - Removed Spacemacs - Typed 'emacs' into a terminal - Oh, this looks old. - Successfully opened a file + Where are the line numbers? + Why aren't I given much information on the file + Where's the completion, the linting, etc. + I thought this was supposed to provide a richer experience than colourised nano? - Tried to execute a command interactively (forget which command) + Typed M-x + Wait, this is just a text box + I don't know commands off by heart! + I want to be able to type key terms and see options! - This isn't going to well - I'm just slightly dissatisfied with notebooks, I don't want to "build my editor from scratch!" *before* I can get going with it! Conclusion: vanilla emacs is: - faster starting - uglier, way uglier - Not sure how this is much better than Nano TBH (remember: new user, not intimately familiar with the benefits) - so lean that I don't get "basic" editor functionality (remember: coming from VS Code where on install I can open a common file and get completion, linting, and more! with common file types suggesting extensions which can be installed with a single click). - Difficult to use - Not something I can try in an afternoon - Likely not worth the time * Org-mode, my ramp into Emacs pt.2 - Doom - I wonder if there's some other option, closer to Spacemacs where I feel it actually helps me get stuff done, but isn't Spacemacs - [Googles] finds out about Doom, screenshot looks way better - Skim the readme, looks promising - I run the one-line install - Ok, so what do we have hear. - Oh, look for the file ~/.doom.d/init.el ? I can do that - Finds commits describing how the file works + Doom has 'modules' - bundles of functionality + Uncomment the modules you like the sound of, then run 'doom ' + I can do that! - It works, I open up a file and it behaves as expected (and in a somewhat snappy manner - compared to Spacemacs) - I try an Org file, it works! - I gradually get drawn into Emacs, the rest is history (for an idea of how I currently am, see: https://tecosaur.github.io/emacs-config/config.html) Ok, so what are the key aspects that allowed Doom to draw me in where Spacemacs and Vanilla Emacs failed? - Having an initialisation=E2=80=A0 file, well commented such that *without= knowing anything about Emacs* I could have Emacs be set up such that I could actually try it with familiar tasks and not be underwhelmed, or have to deal with sudden troubleshooting =E2=80=A0The important bit about this file is that it let me declare which bundles of functionality I want easily, and without having to parse much unfamiliar lisp (both Spacemacs and Vanilla fail in this regard, but in different ways). - Having good 'discoverability enhancements' used by default - counsel for M-x - which-key - Looking 'modern' helped me think of Emacs as something which /could/ be modern, which helped give me confidence in giving Doom a shot (and put me off vanilla Emacs) - Felt a lot smoother/faster than Spacemacs - Used Discord for it's community, a recent chat-app which I recognised (I'm still warming up to mailing lists). - I don't think I can stress the init.el/module system enough. I wanted to use Org-mode with R. I just needed to uncomment ESS, run doom refresh and it worked; and *this was all made obvious to me shortly after installing*. When I had combinations which used packages which interacted and required work-arounds or modifications to integrate with other modules - Doom would just take care of this in the background. The modules let me 'hit the ground running' in a way I didn't in vanilla. This has been quite a ramble, but should give an idea of how I approached Emacs, and why the difference in first impressions Doom provided ended up being so important to me. All the best, Timothy.