Why I decided to use emacs exclusively

I used to use vim, neovim, kakoune, helix, and emacs. I decided to ditch the rest and use emacs exclusively.

The reason is that emacs lisp is the implementation language and the scripting language of emacs. It is the same for lem, but lem doesn’t have org-mode and magit and org-roam.

In other editors, the implementation language is not the scripting language. Embedding a scripting language in any software is very difficult and prone to bugs and leads to a clunky programming interface. Using one language for everything leads to a much better developer/configuration experience.

From this view point, gnu guix is also good because the implementation langauge is the scripting langauge in gnu guix.

Helix editor is certainly a good editor, but it is trying to embed a scripting language. Embedding steel scheme in helix editor is taking years, and it’s still not done. I don’t think it’s going to work out well. Embedding a scripting language backfired across many software products.

I also have a limited time on earth. Time is limited. I don’t have time to dabble with many editors. I just want to use one good editor for as long as possible.

6 Likes

Interesting viewpoint. I have to admit as a non-programmer i’m not very knowledgeable on the things you mentioned. I’ve been using Helix for a while now mainly because i wanted to use a more powerful editor than Nano, but didn’t like VSCode very much. Vim/Neovim looked alright but i didn’t feel like configuring the whole thing (although i suppose i could’ve just used something like Lazyvim in hindsight). I settled on Helix cause it pretty much does what i need it to do out of the box, and only required a few lines of toml. I did start thinking more about giving Emacs a try now that i’m using Guix and interacting with Scheme, but the configuring part is still something i’m not sure if i want to bother with. Perhaps i should start by giving something like Doom Emacs a try.

For GNU Emacs, I think you should not worry about the configuration at first. I had been using the default for a long time, and it does most of the editing things correctly.

That’s also an option. I think the main reason i’m considering something like Doom is because i do like some of the extra features added that make it more like an IDE.

I guess it depends on what features you think make an IDE. Vanilla Emacs out of the box comes with:

  • code completion
  • language server ready for a lot (most?) languages
  • compiler support (gcc and others)
  • debugger (gud and others)
  • syntax highlighting
  • and more

All of that exists without installing additional packages, and can still be configured without knowing anything about Emacs Lisp (for the most part) via the built-in customization features.

Using something like Doom will install a bunch of packages to enhance your experience and possibly mimic other tools in a way that makes it feel more familiar if you are coming from that direction.

If you would like something a bit more minimal (as compared to Doom for example), you could consider something like Crafted Emacs (I know, shameless plug - I am the maintainer).
Regardless, use the tools which make you the most productive and enjoy the ride! :smile:

2 Likes

Oh wow! I actually didn’t realize Emacs already comes with those things ootb! Admittedly i haven’t done a lot of research on Emacs yet, but this does make me feel like it might be worth jumping into vanilla Emacs and see how far i get with configuring some things on top of it. Crafted Emacs also looks like it could be a good starting point! I should probably start watching some Emacs content when i get to it lol.

1 Like