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.
---------------------------------------------------------------------