A little over a year ago, I committed emacs-setup to GitHub. emacs-setup is a package I’d written previously and had tweaked and used enough to finally warrant putting out to the public (it is available through MELPA.
emacs-setup came about when during a time when I became very fond of Emacs making things really easy to do, or flat out doing things for me. As I was adding/removing packages, and changing my .emacs file in general, I thought to myself “certainly, there’s a more interactive way to do this.” As I found, there wasn’t. Not in the capacity I was looking for, anyway.
So, I began writing some basic functions, the base of what would become emacs-setup. I have since been using the package for over a year.
What does any of this have to do with anything? Well, put simply, I just realized that it has been over a year since I started using emacs-setup. This was a shocking realization, for a couple of reasons.
First, I realized that I had written software that was usable and had become such a part of my Emacs usage that I almost forgot about it and began to take advantage of it. As a developer, knowing that I’ve written software that’s “good” (for lack of a better term or metric) is an extremely positive feeling. I often struggle with my own developer skills, worrying that I’m not “good enough” at times. Realizing that software I wrote has been up and running for a year or more was a huge boost, even though (most likely) I’m one of a very few people using it or who even knows it exists. Which brings me to my second point.
I have always, er, obsessed over making software for people, and by “people” I mean “other people”. I think that’s wrong. I should be obsessed over writing good, useful software. If others find and use it, all the better. If not, then I still wrote some awesome software that I can personally use. The inherent realization here is that writing software shouldn’t be about fame and not completely about money (paying bills is one thing, being Bill Gates is a bit much). As a programmer, I should enjoy programming, which I do, but I should not let the fact that no one will ever see a program I wrote, or even know it exists, deter my enjoyment or pursuit of programming.
Ok, ok. Enough with all the philosophy. I’ve explained how my Emacs setup has changed me and taught me some life lessons about what I love to do. However, what about the second part of this article’s title?
Simply put, emacs-setup has served me well, in many capacities. That said there are a few limiting factors to handling my Emacs setup in an interactive way through my package. For instance, temporarily commenting out a piece of your .emacs for testing/debugging purposes is easy, but not so easy with my package.
Therefore, I’ve begun rethinking if emacs-setup has completed its usefulness to me. Perhaps it is time for me to go back to working with straight init files again. I honestly haven’t decided yet, but it is always in the back of my mind these days. Like with many things (emacs vs vi, evil vs default, GUI vs CLI, etc) I tend to flip-flop philosophies alarmingly regularly. Is my desire to go back to .emacs management a manifestation of my desire to be closer to pure, base Emacs? Is it, instead, in response to the few drawbacks emacs-setup has? Yet still, is it purely that I want to change again, to be different than I have been for so long? Put succinctly, if I switch back away from using emacs-setup, am I doing so for good reason or on a whim?
Side note: if you are using, or have used, emacs-setup. Let me know what you think. I’d be curious to see if it has helped or hurt anyone.