Request for comments: project proposal

Robert STRANDH <[email protected]> Mon, 29 Mar 2004 18:13:09 +0200 (CEST)
Newsgroups gmane.lisp.clump
Message-ID <[email protected]>
Hello all, 

Sorry if you get multiple copies of this message. 

Today, I was thinking of a new project.  Not that I have time to
contribute to another one, but I could probably write some
specifications for some summer interns, I guess. 

The purpose of the project (let's call it "Mel") is to write an
end-user email client using Common Lisp + CLIM (McCLIM).  

For a long time, I have been unhappy with "vm" (an extension for
Emacs), and the GNUS documentation recommends "vm" for email.  I do
like having many of my usual Emacs features around, such as abbrevs,
interface to aspell, etc when I read and write email, but there are
some other aspects of "vm" that get on my nerves:

  * loading and saving files.  Mel would use a file format in the form
    of a Lisp image that could be mmaped as opposed to an octet-stream
    representation of mail messages.  Code would have to be written to
    parse MIME into Lisp data structures.

  * duplication.  When a message is saved to a mailbox, it gets
    duplicated.  Mel would just save a pointer.

  * grep is hard.  I can no longer use grep or equivalent on my
    mailboxes, since they are stored in various formats.  Mel could
    use generic function dispatch to make a putative grep method work
    for all kinds of formats.

  * etc. 

Alternatives such as Mozilla are, of course, even worse (no spell
checker, no usual Emacs commands, ...)

Mel would use CLIM presentation types and other CLIM gadgetry to
accomplish some of its tasks.  In fact, I think an email client is
close to the ideal application for CLIM.

Some other advantages of this project:

  * It would boost the development of an Emacs in Common Lisp, since
    Mel would have to use something very close to Emacs buffers to
    represent text.  And it would have to handle international
    character sets. 

  * I would use it myself, which would give me an incentive to work on
    McCLIM, CL-Emacs (be it Goatee or Portable Hemlock) using CLIM,
    etc.

  * It would be a perfect long-term (> 5 years) project for various
    courses and summer internships.

  * It could be made quite modular so that different people or groups
    of students could work in parallel.  Examples of modules:
    Flexichain, Emacs buffer (using flexichain), MIME
    encoding/decoding, grep/search facility, user interface, interface
    to ispell/aspell, spell checker in CL, grammar checker, HTML
    display facility (see Closure), etc.  

  * Some of the infrastructure it needs could become general McCLIM
    or Common Lisp extensions. 

  * It is VERY USEFUL and could become a "killer app" for Common Lisp
    and McCLIM. 

Anyway, let me know what you think.

-- 
Robert Strandh

---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------