The Geek abides...

The Power of Tinker-Toys

Date/Time Permalink: 03/24/06 01:00:53 am
Category: General

Every now and then, it occurs to me that one software design model trumps every other one I've encountered, yet. That happens whenever I take stock of my installed software. Currently, on my Linux system, my other text editors run to AbiWord, Gedit, Kedit, Kwrite, vim, Xedit, and jed. Having many Linux distributions lying around, I also have the Open Office Suite within easy reach, as well as other editors such as Beaver or pico.

Yet I'm writing this in Emacs.

Emacs has had it's detractors. Back in the mid-1970's, when Richard Stallman first gave Emacs to the world, Emacs was seen as bloated and elephantine. Just a minute while I Ctrl-X 2 and Ctrl-x o to the other window and check something...

Ah, yes, here they were in my /usr/share/emacs/21.2/etc directory. Some deprecatory interpretations for the acronym EMACS, posted in a file called "jokes", good-naturedly enough, by Stallman himself:

Eight Megabytes And Constantly Swapping
Even a Master of Arts Comes Simpler
Emacs Manuals Are Cryptic and Surreal
Each Manual's Audience is Completely Stupified
Eventually Munches All Computer Storage
Eradication of Memory Accomplished with Complete Simplicity
Emacs Manuals Always Cause Senility
Emetic Macros Assault Core and Segmentation
Extraneous Macros And Commands Stink
Equine Mammals Are Considerably Smaller
Eenie-Meenie-Miney-Mo- Macros Are Completely Slow

Yes, these were all true of Emacs when run on 1975 hardware. But it's 2006 now, and I've never had Emacs do anything on my AMD Athlon that took it longer than the blink of an eye. By contrast, I'm groaning with impatience before AbiWord has loaded a document.

In this manner, Emacs now seems to be one of the most highly-efficient programs for all of the things it can do. Where else can you get an entire operating system for just (I Meta-x eshell to a console to run ps -aux to check) 8.5% of your system memory? Emacs, as it turns out, wasn't bloated, it was just ahead of it's time.

Now, when I were a young'n, my parents got my toy preferences hit 'n' miss every Christmas. Oh, sure, there were things that I *thought* that I wanted - gaudy toys advertised to my age group - but when I got the fancy toys, it turned out that after a week or so with them, they'd be discarded forgotten in a corner, and I'd be back to playing with Tinker Toys. From Tinker Toys to Legos to Erector sets to a Radio Shack build-your-own-computer kit; I kept gravitating back to toys whose only purpose was to build other toys. And of course then along came the earliest computers for the home, little consoles you could plug into your TV set. They had game cartridges you could buy and play games on them, but after a few of those I went back to the prime selling point of computers with me in the first place: writing my own programs in BASIC.

I was heart-broken when later and later commercial computer systems came out with more and more programs built for me and fewer and fewer tools to write my own. What was wrong with these people? Were they bent on spoiling my fun? If I hadn't found Linux, I would have gone crazy by now.

How many characters have I typed so far? Let me check: (buffer-size) 3139! (point) was 3206 at the end of the closing parenthesis of point where I typed Meta-x Meta-e to evaluate the Lisp expression. "Point" was 67 more than "buffer-size", according to the result of Meta-x calculator. Those numbers have changed by now, of course.

I have noticed that the greatest software programs, the ones that stay popular over the course of multiple decades, are the ones that are built to be extendible. The Bash shell with it's scripts. The mighty Firefox web browser with it's Grease Monkey scripting engine. The Gimp with it's crafty script-fu. And Emacs, forerunner of all, with a built-in Lisp interpreter. The combination in Emacs of every feature you could imagine and a programming language which you can slip into smack in the middle of a paragraph without breaking your flow makes Emacs quite a sticky program. (setq @mood "elated") There really isn't much reason to leave an Emacs buffer once you're in it. Maybe I'll ask Emacs with Meta-x doctor:

I am the psychotherapist. Please, describe your problems. Each time you are finished talking, type RET twice.

Should I leave?

Why do you say should you leave?

I was wondering what other programs are on my system.

What makes you believe that?

Well, there might be other programs besides Emacs.

Emacs? Hah! I would appreciate it if you would continue.

OK, you have it right there. Emacs asked me to stay, so I'll humor it a little longer. (setq @mood "content") After all, I can always Meta-x tetris if I get bored.

Follow me on Twitter for an update every time this blog gets a post.
Stumble it Reddit this share on Facebook

suddenly the moon