diff options
Diffstat (limited to 'content/emacs/whys-of-emacs.md')
-rw-r--r-- | content/emacs/whys-of-emacs.md | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/content/emacs/whys-of-emacs.md b/content/emacs/whys-of-emacs.md new file mode 100644 index 0000000..23912a2 --- /dev/null +++ b/content/emacs/whys-of-emacs.md @@ -0,0 +1,183 @@ ++++ +title = """ + My "whys" for Emacs + """ +author = ["MichaĆ Sapka"] +date = 2023-12-26T22:12:00+01:00 +categories = ["emacs"] +draft = false +weight = 3001 +image_dir = "emacs" +image_max_width = 480 +primary_menu = "cool-emacs-appendix" +abstract = "My reasons for using Emacs" +aliases = ["/cool-emacs/whys-of-emacs/"] +[menu] + [menu.cool-emacs-appendix] + weight = 3001 + identifier = "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 Vim[^fn:1] seems like the logical option[^fn:2]. +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 off[^fn:3]. +Then, for a few months I have returned to using Neovim. +But here I am. +Using Emacs once again. +Why is that? + + +## License {#license} + +VSCode is released under non-free license[^fn:4], and therefore the code you can see is not necessary what you run. +In fact we know this, as VSCode spies on users[^fn:5], so it's an instant No for me. + +[Codium](https://vscodium.com/) 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 limited[^fn:6]. +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. + +Emacs[^fn:7] is released on GPL[^fn:8] +Vim is released under custom _libre_ license[^fn:9]. +Neovim is released under Apache license[^fn:10] +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 generations[^fn:11]. +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 {#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 object[^fn:12] + +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 {#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: + +- [Alex Maestas](https://se30.xyz/conf.html) +- [Pavel Korytov](https://sqrtminusone.xyz/configs/readme/) +- [Protesilaos Stavrou](https://protesilaos.com/emacs/dotemacs) +- [Derek Taylor](https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/emacs/config.org?ref_type=heads) +- [Sacha Chua](https://sachachua.com/dotemacs/index.html) + +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 Emacsian[^fn:13]. +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 users[^fn:14] - 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 age[^fn:15]? +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 {#stability} + +Lastly, stability. +I use [BSD](/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 {#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_. + +[^fn:1]: I don't distinguish between Vim and Neovim here. +[^fn:2]: amongst specific crowd at least. + But since you are here, it's quite possible that you are one of us. +[^fn:3]: mostly keybindings. I am now armed with Evil mode, the best replication of Vim in any editor. +[^fn:4]: <https://code.visualstudio.com/license> +[^fn:5]: "The software may collect information about you and your use of the software, and send that to Microsoft"[^fn:4] +[^fn:6]: <https://ruky.me/2022/06/11/im-switching-form-vs-code-to-vs-codium/> +[^fn:7]: I refer to "GNU Emacs" as "Emacs". +[^fn:8]: <https://www.gnu.org/philosophy/free-sw.html> +[^fn:9]: <https://github.com/vim/vim/blob/master/LICENSE> +[^fn:10]: <https://github.com/neovim/neovim/blob/master/LICENSE.txt> +[^fn:11]: I will need to write a dedicated article about it at some point, as all that would only mud this one. +[^fn:12]: I know you can modify the source code, but then you are running a fork and not the original program. +[^fn:13]: this also applies my other love, [BSD](/bsd/) +[^fn:14]: sadly, this was one of the biggest reasons I stopped following certain hyperactive Vim evangelist. + Let him become nameless. +[^fn:15]: there is a very funny movie about this <https://www.youtube.com/watch?v=urcL86UpqZc> |