Not much of an email review
Your editor had no choice but to agree. Since then, the situation does not appear to have improved much.
The Notmuch mail client has been on your editor's radar for some months now. Recently, the opportunity to play with this new tool came by; this review is the result. In short: Notmuch looks like it is coming from the right place, but, as befits a program in such an early stage of development, it has some ground to cover yet.
The core of Notmuch is a command-line client which, as they say, does not much. One starts by running notmuch setup to put some basic information into the configuration file, followed by notmuch new to initialize the mail database. That process involves reading and indexing every message you have (messages are stored one-per-file, so Notmuch deals just fine with MH or Maildir trees). Even though the program cheerily declares that you have "not much mail" at setup time, the indexing process can take quite a while; it also doubles the size of the mail store. This step is not optional, though; indexing is at the core of how Notmuch works.
After setup, one can use the notmuch client to perform searches,
modify tags, display messages, and compose replies. In a sense, it looks
back to the early MH days, when everything was done at the shell prompt.
The Notmuch developers do not really expect that users will use the
command-line client directly, though; instead, it is assumed that some sort
of user interface will be layered over it. There are a few such interfaces
available now, but the interface of choice for the Notmuch developers at
the moment would appear to be Emacs.
The Emacs notmuch-mode looks, in many ways, like most other Emacs-based mail clients. There are a few differences, though, starting with the fact that folders are a completely alien concept. This is 2010, and folders have been consigned to a dim, dusty, and hierarchical past; now we do everything with tags. So there's no "inbox" in Notmuch; instead, one sees the results of a search for the "inbox" tag. Something similar to refiling can be done, should one so desire, by attaching different tags to the message, but one gets the sense that's not expected to happen very often. This is the era of search, so a specific view of the mail store is just a search away.
Indeed, searches in Notmuch (powered by Xapian) are very fast and very flexible. The syntax is reasonably straightforward and the results are nearly instantaneous. There is an easy feature for further narrowing the results of a search. It is a powerful and flexible way to deal with large quantities of mail.
The process of reading through mail, though, is still in need of some work;
the Emacs interface is not, yet, at the level of usability offered by, say,
MH-E - and one would ideally set the bar higher than that. There does not
appear to be a way to look at the structure of threads in the
folder search results view; each thread is collapsed into
a single line with a few of the participants listed. Displaying that
thread dumps all of the messages into a single Emacs buffer, which can then
be paged through. Your editor would rather see the thread structure and
individual messages, preferably at the same time.
Working through mail, your editor notes, can be quite slow, with noticeable delays between messages. That would appear to be a result of the removal of the "unread" tag from each message as it is viewed. Tagging operations in general seem to require significant index changes; it may well be that storing mail on a solid-state storage device will be required to get acceptable performance for this kind of operation.
Notmuch doesn't handle composition and sending of mail at all; it defers to the standard Emacs message mode for that. It also doesn't try very hard to display attachments; images, for example, are handed off to external helper programs even though Emacs can display such things inline. When it comes to HTML parts, notmuch-mode does not even try; this, of course, might be seen as a significant advantage.
Is your editor switching to Notmuch? Not yet. Notmuch requires that all mail be stored locally, but your editor likes having that central IMAP server available. There are developers working on tools for synchronizing mail and tags between stores; some folks are even seriously looking at using git as the underlying mail store. There's also no support for multiple email accounts; that is probably trivially fixable by adding a command-line option allowing easy use of multiple configuration files. And the interface remains a little rough.
In the longer term, though, Notmuch could well become your editor's mail
tool of choice. The fundamental approach looks right, and the
tool-oriented nature of the plumbing should enable the easy scripting of
operations on messages. There is an active and growing community of users
and contributors; Notmuch has the look of a successful project. This tool
looks like it could become a powerful utility indeed in not much time at
all.