Regression in Mail Readers
Sunday, March 12th, 2006From 1998 until 2002, I used Gnus to read my mail and Usenet news. From 1997 until 2000, I was in grad school and it was all Unix there, so this was an easy decision. From 2000 until 2002, my company allowed us to use FreeBSD as our primary development machine, so this was an easy decision also. I was also running FreeBSD at home, so Gnus for personal mail worked out good.
In all this time, I had gotten used to certain things that Gnus did and did really well:
- Threading: Mail and usenet post threading was very critical to my functionality. I could ignore entire threads and run through messages much faster this way. It really helped me deal with the amount of information that was available in mailing lists and usenet posts.
- Scoring: I used adaptive scoring in Gnus. This was just too perfect for words to describe. Based on this scoring pattern and my reading pattern, Gnus really helped me skip topics I was not interested in and helped me skip authors whose rantings I no longer wanted to read. It also allowed me to change my mind about a topic or an author, all without editing any .killfiles or any other mechanism. I had set it up this way:
(setq gnus-default-adaptive-score-alist
'((gnus-unread-mark)
(gnus-ticked-mark (from 4))
(gnus-dormant-mark (from 5))
(gnus-del-mark (subject -4))
(gnus-read-mark (from 1) (subject 2))
(gnus-expirable-mark (from 0) (subject -1))
(gnus-killed-mark (from -1) (subject -3))
(gnus-kill-file-mark)
(gnus-ancient-mark)
(gnus-low-score-mark)
(gnus-catchup-mark (subject -4) (from -1))
))
- Fiters: I used nnmail-split-fancy to move mail messages to different “folders.” It was so much easier to create rules for nnmail-split-fancy and you can do it in really creative ways. You can filter based on anything you wanted, not just some canned To, Cc, To or Cc, Subject and From. You can split on any header you wanted, any body you wanted, whatever suited your fancy. Writing rules were also easy, once you understood the tiniest bit about XEmacs’ regexps.
- Saving body of message or the entire message or the attachment, to different folders, files, etc were really simple. A few keystrokes and you were done. But then anything could be done in a few keystrokes. And if you have already set up a few regexps in the right places, the defaults offered to you when trying to save would be correct.
- Scripting: In recent years, scriptability is what seems to separate various programs. Whether it is using shell scripts, AppleScripts, Python, whatever. But Emacs was the grandfather of all scriptable programs. Write your own whatever! Heck, in what other program can you actually emulate your biggest competitor? (Yes, I am sure there are some other programs which can emulate their competitors, but this is a rhetorical question, so please don’t try to answer it. Thanks). You want to write your own filtering system for Gnus, go ahead! Whatever you want. Have it your way! ™
- Citing and replying with context: Supercite and Gnus together provide the most joyous environment for replying to mails. You can cite any which way you want (including one of your own design! See previous point), pick the right context for your reply and make sure your reader really understands which part of his mail you are presenting as evidence to prove that he is an idiot. Citing the right part of a mail was considered the right thing to do. You never ever top post. And supercite just made it so easy to do that. It would realign your paragraphs correctly and add the right prefixes to the original mail, including different prefixes for different authors, if you have set it up that way.
I have not even touched on features I have not used, such as the various pseudo mail backends (nndir nnslashdot, etc) and a whole load of other things.
In 2002, my then company moved us all to Exchange and Outlook for mail. That was a very fascinating experience for me. The fact that the mailer did not thread mails was such a shock to my system. I had been used to threaded mails since atleast 1998 or so and I didn’t realize that other mailers did not have that capability. How was such a thing even possible? In 2002? Apple made such a big deal of adding threading to Mail.app in 2003. People were going on record saying things like “threading is cool!” and I looked at them like Sylvester Stallone looks at people in the future in Demolition Man: welcome to the past!
The other primary failing of all these other programs is the reply citing: they all suck! If the mail you are replying to has long lines (very close to 80 chars per line), then adding a prefix to them will push the final word into the next line. Now that next line will either NOT have the reply prefix; or it will have a reply prefix but it will not be merged into it’s next line, and thus you will have a cited line that has only one word in it. What supercite would have done is to merge that last word into the next line and made it into a proper paragraph, as it was meant to be. Here is an example of one such bad reply citing:
In the above image, the line beginning with “fixed and” should have been merged with the line that says “that’s a kernel issue.” Or atleast it should have been given a reply prefix. But neither happened in this case. And this is in 2005!
The current crop of graphical mailers, such as Mail.app, Thunderbird, Outlook, etc, etc, have only some of the features that Gnus had in 1998 and they dont even do that job well. Accurate mail threading is still black magic to Outlook. I have a Mac nowadays and I am trying to get used to Mail.app, with the idea that I should start to use a real graphical mailer in 2006. Mail.app has some cool animation when you open and close a mail thread, but it still doesn’t have any sort of adaptive scoring that Gnus had in 1998. Neither do any of the other mailers. I find it painful now to subscribe to high-volume mailing lists because I am not able to deal with all that information in any meaningful way without manually performing multiple tasks per mail to simulate scoring. Of course, scriptability of any application comes nowhere close to what can be accomplished with Emacs, but this is not something I would hold against any application. Emacs is only an editor by chance; at it’s base it is a lisp interpreter that just happens to have some minor specialization for editing. I have never used mailers like Mutt, so I dont know what they are capable of. But Mutt can only be called graphical, if you consider running emacs -nw as running a GUI application.
My next company let us use Thunderbird, so I tried that for some time. It was definitely much better than Outlook, but still nowhere close to Gnus. Now at my current company, I am back to having to use Outlook (it is actually much worse now since I also have to use Windows for development; thank God for Cygwin). I have now switched my personal mail exclusively to Gmail, just for the mobility that it offers me, and I have given up on a decent desktop mailer client. Nowadays, I just top-post in work mail, because it is too much work to be a good netizen. The tools no longer help in being a good netizen.
Is this the future of all software, where as time goes on, more importance is given to graphical whiz-bang but useful features keep dropping out. I struggle to find IDEs that offer the same kind of capabilities that (X)Emacs did long ago. To be fair, IDEs have much improved in certain areas like intellisense, that (X)Emacs still lacks. But in fundamental scriptability (X)Emacs and Vim rule the roost. And these are 30 year old programs! I long for that day in the future when I can get a mailer with Gnus-like functionality with whiz-bang graphics as in Mail.app, that is well integrated into the system (use AddressBook for addresses, etc). Maybe flying cars will be here sooner.
Technorati Tags: emacs, gnus, osx, xemacs, thunderbird
