Emacs: The Poster Child for Software Bloat
I love Emacs. It’s the editor I grew up with. I’ve been using it for over 30 years. I don’t think I could switch to another editor now if I wanted to. There’s even an excellent GUI port of it to MacOS called Aquamacs that I use all the time.
I come not to praise Emacs but not to bury it, either.
Emacs is, how can I say this gently… fucking huge. Some people joke about just skipping the operating system and booting directly into Emacs.
So of course, one of the first things that I do when I set up a new computer is install a version of Emacs on it.
I am putting together a Linux installation for a small low power, single board computer that I’m playing with. I’m installing Debian Linux on a compact flash card on the computer. And, yes, I want Emacs.
There are stripped down Emacs-clone alternatives but I naively went whole hog and did:
apt-get install emacs
to get proper GNU Emacs.
And what did it drag along with it? Granted I had only a minimal Debian install on the card already but I was a little surprised to find that in order to install Emacs, Debian also had to install:
gcrypt, Kerberos 5, Perl, LDAP, cpp, expat, libasound, XML
I can’t honestly say that I was surprised that it also installed X11; I knew that was coming whether I wanted and needed it or not.
Likely some of this was necessary in order to build tools that were used to help install Emacs; I don’t know and I don’t care enough to find out. It seems entirely conceivable to me that Emacs itself is linked against encryption libraries and authentication libraries, a sound library and tools for processing XML files.
I am glad that I’m using a 32GB flash card, because now I’m installing 327MB of Arduino support (Python! more X11! gcc! jdk! ogg vorbis!! (seriously?)). Who knows how big that would’ve been if I hadn’t already installed Emacs?
I was going to install gcc next but it looks like between Emacs and the Arduino install that’s already been taken care of.