[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Changes for emacs 28

From: TEC
Subject: Re: Changes for emacs 28
Date: Wed, 09 Sep 2020 02:15:24 +0800
User-agent: mu4e 1.4.13; emacs 27.1

NOTE: I accidentally sent a draft before this. Please disregard it.

Yuan Fu <casouri@gmail.com> writes:

> That’ll be very helpful, since many people on this ML are trying to
> imagine what a new user needs and can’t figure out. Even myself, just
> started using Emacs 3 years ago, can’t remember what problem I faced
> 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™, 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
- 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 <something>'
  + 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:

Ok, so what are the key aspects that allowed Doom to draw me in where
Spacemacs and Vanilla Emacs failed?
- Having an initialisation† 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

  †The 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,


reply via email to

[Prev in Thread] Current Thread [Next in Thread]