meillo@0: .H0 "Previous Situation meillo@0: .P meillo@0: foo meillo@0: meillo@4: .H1 "Historic Background meillo@0: .P meillo@4: In order to understand the state, goals and dynamics of a project, meillo@4: you need to know its history. MH comes from a time before the meillo@4: Internet, a time before networking became universal, a time when meillo@4: emailing was small, short and simple. Then it grew, spread and meillo@4: adopted to the changes. The core-concepts, however, remained the meillo@4: same. During the XXX a small group of students at the University of meillo@4: California, actively worked on MH. They added features and optimized, meillo@4: like it is common for scientific work. This is still in pre-ANSI C meillo@4: times. The source code contains many ancient parts. Code constructs meillo@4: specific to BSD or hardware of that time are usual. meillo@4: .P meillo@4: Nmh started eight years after the ANSI C standard had been meillo@4: established. A more modern coding style entered the code base. Still meillo@4: a part of the developers come from ``the old days''. The developer meillo@4: base became more diverse and thus the code. Programming practices meillo@4: from different decades merged into the project. Different coding meillo@4: styles came together. It appears as if multiple peers added code meillo@4: parts, resulting in a conclomeration rather than an homogenic meillo@4: of-one-cast mail system. Still, the basic concepts hold it together. meillo@4: They were mostly untouched throughout the years. meillo@4: .P meillo@4: Although, at the surface, nmh is a toolchest, meaning a collection meillo@4: of completely modularized small programs, on the source code level, meillo@4: it is much more interweaved. Parts of the basic functions are meillo@4: collected in a MH standard library, which is good, but often meillo@4: separate functions are compiled into programs, for effiency reasons. meillo@4: This lead to intricate innards. meillo@4: The advent of MIME rose the complexity of email by a magnitude. This meillo@4: is visible in nmh. The MIME-related parts are the most complex ones. meillo@4: It's also visible that MIME support had been added on top of the meillo@4: original MH later. The MH style made this easily possible, but it meillo@4: also lead to duplicated functions (e.g. \f(CWshow\fP, \f(CWmhshow\fP) meillo@4: and had not been thoroughly included into the concepts (e.g. the meillo@4: user-visible access to whole messages and MIME parts are inherently meillo@4: different). meillo@4: .P meillo@4: For compatibility's sake, it is a common understanding to have the meillo@4: default settings to be compatible, requiring any new feature to be meillo@4: explicitely enabled. This puts a burden on new users, because nmh meillo@4: out-of-the-box keeps staying in the same ancient style, where users meillo@4: usually want to have it practical for modern emailing. meillo@4: But of course, this depends on if nmh is seen to be a front-end or a meillo@4: back-end. meillo@4: meillo@4: .H1 "My Vision meillo@4: .P meillo@4: The general goals of the mmh project are the following: meillo@4: .BU meillo@4: I believe that mmh should be perfectly suited for modern emailing, meillo@4: out-of-the-box. meillo@4: .BU meillo@4: I care less about compatibility and more about conceptionally elegant meillo@4: approaches. meillo@4: .BU meillo@4: I care for general, clear, and simple concepts. meillo@4: .BU meillo@4: I like to create an of-one-style email system. meillo@4: .BU meillo@4: I plan to remove any optimizations that rises obscurity, unless it meillo@4: appears to be neccessary to make mmh usable at all. meillo@4: .P meillo@4: .B "The target user in mind meillo@4: likes Unix and its philosophy. meillo@4: He likes to use programs that are conceptionally appealing. meillo@4: He's familiar with the command line and enjoys its power. meillo@4: He is at least capable of shell scripting and wants to improve his meillo@4: productivity by scripting the mail system. meillo@4: His computer and operating system are from post-ANSI C times. meillo@4: He likes to attach files, exchanges text containing non-ASCII meillo@4: characters, signs or encrypts his messages. meillo@4: He does not use bulletin boards anymore, nor non-mbox style mail meillo@4: drops, nor does he rely on compatibility to nmh. meillo@4: He already has and MTA/MSA and MRA running or is able to set them meillo@4: up. meillo@4: He does not want to have to read a book in order to make his MUA meillo@4: usable. meillo@0: meillo@0: .H1 "Things to do meillo@0: .P meillo@4: