Cool Emacs

My "whys" for Emacs

I have used many editors over the years. I’ve started with Notepad, then moved to Notepad++, Sublime Text, IntelliJ, and VS Code. Heck, I even Nova at some point. But only two really stayed with me for longer - the first being Vim, the second Emacs. Choosing Vim1 seems like the logical option2. It’s an extremely popular editor with a huge community.

But first: I strongly believe, that everyone working with computer, owe to themselves to spend some quality time with both, Vim, and Emacs. Vim is amazing. Modal editing is second to none when it comes to natural text processing. They keybindings are close to perfect. It requires some time to get used to, but let’s not overstate that. You can get semi-fluent in Vim in 2 weeks.

And then there’s Emacs. I’ve tried it for a year. I like it, but something felt off3. Then, for a few months I have returned to using Neovim. But here I am. Using Emacs once again. Why is that?

License

VSCode is released under non-free license4, and therefore the code you can see is not necessary what you run. In fact we know this, as VSCode spies on users5, so it’s an instant No for me.

Codium exists as libre version of VSCode, so it’s an option. However, it is not the same program as VSCode as incompatibilities exist, and the presence of plugins is limited6. Any advancement of Codium is to the benefit of VSCode, and I hove problems with this.

IntelliJ is completely closed-source, so it’s also a no-go for me.

Emacs7 is released on GPL8 Vim is released under custom libre license9. Neovim is released under Apache license10 This means that the software is truly free. I can see the entirety of codebase, not just the Lite version (like with VSCode). I can redistribute it, I can copy, and share it without any limitations. I can fork it, I can change it. I can do almost whatever the hell I want it - as this was the basis of FSF. This may be not important to you, but it is for me.

I believe libre software is a necessity. Some people prefer proprietary programs - some even don’t see problems with software as a service. But only libre software allows for betterment of our craft. Only by being able to freely modify and share software are we able to make the craft better for future generations11. I am paying for free software without any second thoughts by donating to some foundations. Yes, I make my living creating properties software, but I try to give back. I refuse to choose non-free software. I am forced to use some, but whenever there is a choice, I will choose free.

This leaves Vim and Emacs as two the two important and libre editors. And with this, I have quickly removed almost all competition. Now, how did I choose between those two?

Different visions of computing

Vim and Emacs represent two, vastly different visions of computing.

Vim is a precompiled program with plugin capabilities. This is the vision of computing that has won. You get a binary (or, worse, a webpage) which makes your program do its thing. You can expand it using different plugins and configuration, but the program is an unmovable object12

Emacs is different. We’ve got a very small core written in C. It handles basic functionalities, but by itself is close to useless. But then we’ve got Lisp. Almost all user-facing functionalities are written in Emacs specific dialect Lisp.

And Lisp is the keyword here. All of the codebase is exposed to the user, ready to be not only read (as with Vim) but also modified during runtime. You can change Emacs at a whim.

VSCode tries the same, as it’s a JavaScript-backed browser dressed as an editor. Emacs therefore can be though as a Lisp-backed virtual machine dressed as an editor. But the former was already rejected on the basis of being non-free (and I don’t to run more Chromes that it’s absolutely necessary), so it leaves me with Emacs.

I am not a Lisp programmer, but I started learning it. For now I like it more than JavaScript.

Community

I am not a people person, but people are what drive me.

And this another aspect which drives me to Emacs. There are folks who are happy with all-batteries-included distributions, like Doom Emacs.

But there’s a huge community of personalization maniacs. People change every possible aspect of Emacs, because the program allows it. Lisp is right there, and Emacs seems to be the last standing in the good fight to preserve Literate Coding with Literate Configuration people share. To name just a few, who are my personal inspiration:

But at the same time the community is small and I have a thing for smaller communities. There are Vim users everywhere, but it’s not that easy to find an Emacsian13. But when you do, there are huge chances you’ve met someone at least interesting. All Emacs users who I’ve ever meet in real life became my mentors to some degree.

Also, what is very important to mention: despite popular joke, there is very little hate in the Emacs community. People into Vim tend to tell mean joke about Emacs users14 - and part of this joke is that the feeling is mutual. It couldn’t be further from the truth. We all have great respect for other libre editors and their users. In fact, a lot of us move between Emacs and Vim on a daily basis.

Maybe this is partly due to age15? Emacs users tend to be, well, older. Some have their configs evolving since the 90s! They’ve already got a lot to show, so they don’t need to be mean spirited? I have no idea, but what I know is that they are a lovely bunch!

Stability

Lastly, stability. I use BSD because it doesn’t change for the sake of change. No SystemD will ruin a perfectly good workflow.

Emacs is the same. It’s badge of honor - very rarely were there any bigger breaking changes. When I used NeoVim, every few weeks something broke due to unfortunate update. In Emacs on the other hand? Not even once has something broke not from my own volition.

Emacs comes with multiple competing solutions for the same problem, as people may rely on one of those. If a new one comes along, the old ones are not replaced. This increases the confusion of a new user, but it’s very much appreciated.

Summary

Emacs is the only empowering, libre and limitless editor I know. It has an amazing community which values I share, and I want to participate in. Also, it does not require constant maintenance because someone changed something.

Using Emacs sparks joy.


  1. I don’t distinguish between Vim and Neovim here. ↩︎

  2. amongst specific crowd at least. But since you are here, it’s quite possible that you are one of us. ↩︎

  3. mostly keybindings. I am now armed with Evil mode, the best replication of Vim in any editor. ↩︎

  4. https://code.visualstudio.com/license ↩︎ ↩︎

  5. “The software may collect information about you and your use of the software, and send that to Microsoft”4 ↩︎

  6. https://ruky.me/2022/06/11/im-switching-form-vs-code-to-vs-codium/ ↩︎

  7. I refer to “GNU Emacs” as “Emacs”. ↩︎

  8. https://www.gnu.org/philosophy/free-sw.html ↩︎

  9. https://github.com/vim/vim/blob/master/LICENSE ↩︎

  10. https://github.com/neovim/neovim/blob/master/LICENSE.txt ↩︎

  11. I will need to write a dedicated article about it at some point, as all that would only mud this one. ↩︎

  12. I know you can modify the source code, but then you are running a fork and not the original program. ↩︎

  13. this also applies my other love, BSD ↩︎

  14. sadly, this was one of the biggest reasons I stopped following certain hyperactive Vim evangelist. Let him become nameless. ↩︎

  15. there is a very funny movie about this https://www.youtube.com/watch?v=urcL86UpqZc ↩︎


Next: Emacs as a Shell, Up: Cool Emacs