Coming Out Emacs

Posted on November 7, 2020

This post has proven to be a difficult one to write. I keep rethinking it! Is it a good idea to write about tech? Is it a good idea to write about something I'm passionate about but that is also extremely difficult to relate to? Am I willing to come off as a hipster programmer? It's time to find out, once and for all.

With this post, I think I've come to a realization about my previous website iterations. I wanted to write tech and explain a lot of things, and I think I got burned out. I appreciate documentation and don't mind writing it since it usually saves me a lot of time later. But I thought that I could write documentation as posts and pet two cats with one hand (as my wife wills me to say) and that kind of efficiency just bums me out. I say that somewhat facetiously, but thinking about it now I think that's true. I need more freedom to wander and graze on these nuggets of self-discovery.

But I'm trying to pay homage to the piece of software that has made this site possible and has been the object of many dedicated hours of forum searches. Emacs is a great piece of software I use for basically everything: email, creative writing, code, my resume, managing to-do lists, managing this website, tracking habits, anything involving text. In short, I'm invested. The thing is, I'm willing to invest so hard in Emacs because it's been around since well before I was born and will probably be around after I die. I don't have that confidence with anything else I've experienced in life, except maybe war and taxes I guess. Nothing digital, though, that's for sure. So Emacs has been around a long time, and rightfully so! For one, it's free. It's also extensible: it can do pretty much anything that can be done with text. A lot of that power stems from one of its "modes": Org. In some of my musings under the glow of the moon as I lie restless in bed, I sometimes imagine what my life would be like if I had learned Org and Emacs in high-school instead of Word. I probably would have tried harder. I like to think so, anyway. I'll always regret that D I got Fall semester in Calculus. Could be it's unrelated. Regardless, Org is amazing because it provides a simple, structured, and (for me) intuitive way to markup text. You want bold font? Put some asterisks around it! You want italics? Forward slashes, baby. There's no highlighting and clicking a button to get what you want. A hyperlink to represented by the text "wreck it" just looks like this: [[][wreck it]]. There's no hidden formatting in XML tags that the document hides from you. For the longest time, I thought Word was doing me a favor by hiding all of that formatting. But, after working with file formats like Org and to a lesser degree Markdown, I find it way easier to have the formatting available to me when I'm writing the document. If someone's going to read it later, I can just export it to a format that dolls it up and send it along. One of the main draws for me is that I never have to worry about those annoying italicized and bold spaces left over from deleting bold/italicized text. I know they're there, and I know that behind the scenes the document is wasting precious bytes doing something I don't even want it to. I'm on to you, Word.

I guess I probably spent too long talking about how Org works, but back to the point of being able to do anything with Emacs. Org contributes a lot here, but the more important component is that Emacs has a strong, altruistic user base putting out projects all the time. If you find something missing from Emacs, chances are someone's made it or is working on it. For example, I just added an excellent Merriam-Webster Thesaurus integration called mw-thesaurus. If there's a word I'm looking for, I now never again have to break my flow and open a browser, go to my preferred search engine, type "thesaurus", click a link, type the word I'm looking for, and click "Search" or whatever the button says. All I have to do is put my cursor over the word I want a synonym for and type CTRL+C followed by h and a window pops up with the exact same information as the Merriam-Webster site. Again, these kinds of things are added all the time; this one was just added last year! The Emacs environment is always growing and changing, and as a user I feel inclined to do the same. It's actually exciting in a way. Emacs is what I wanted owning a home to be like. I get to improve it all the time, it's actually somewhat fun for me to keep my setup tidy, I can rearrange things in a lot of different ways (just look at the history of my config), I can easily get rid of the things I don't like, and for the most part it always works which is surprising considering I use it to do way more things than any one program has any right to be doing.

There's a sort of existential serenity in having so much control over a program, and you're probably thinking it's because I'm a nerd, but it's mostly because this kind of organic control is so hard to find anywhere, let alone in something like software! Most software is designed so you are not in control. You are at the mercy of whoever created the application. If they revamp the user-interface, you have to deal with it. Emacs doesn't do that to you. You can make it look like whatever you want.

What all of this flexibility and power lends itself to is being useful in almost any profession! Granted, Emacs is complicated. I admit that a non-trivial amount of technical acumen is required to fully adapt Emacs to your style. All of this customization comes with the cost of learning elisp to some degree. That or trolling forums looking for people who have already done whatever you're trying to do. But just search the internet for "How do you use Emacs at work?" and you will find not just programmers, but nurses, lawyers, professors, social workers and even bakers are using Emacs every day to make their work easier. The same can be said about Microsoft Office or Google Apps, and it's true that you can use Teams to maintain a schedule or Google Sheets to organize data, but I encourage you to look at how people are implementing the same workflows in Emacs and I think you'll see it's much more fluid. The unique thing that I think draws people in is that Emacs adapts to them and not the other way around. Unfortunately, without fiddling with it and investing time into making it do what you want, it's hard to see or even really demonstrate how neat of an idea that is. An unexpected byproduct of this mutability is that it helps me be mutable as well. I started thinking about how I can do programming tasks more easily with Emacs, but inevitably I started thinking of ways to apply it to areas outside of programming and even computing, just managing chores and stuff. It really makes my life easier when I have the willpower to use it. I'm better at it sometimes more than others, but the point is that it's useful almost everywhere, And that sort of paradigm transcendence is what I think the modern tech revolution is all about.