docs/master

annotate ch02.roff @ 4:c82c1219e877

Added text.
author markus schnalke <meillo@marmaro.de>
date Wed, 07 Mar 2012 14:33:19 +0100
parents dc2bfef4cda7
children
rev   line source
meillo@0 1 .H0 "Previous Situation
meillo@0 2 .P
meillo@0 3 foo
meillo@0 4
meillo@4 5 .H1 "Historic Background
meillo@0 6 .P
meillo@4 7 In order to understand the state, goals and dynamics of a project,
meillo@4 8 you need to know its history. MH comes from a time before the
meillo@4 9 Internet, a time before networking became universal, a time when
meillo@4 10 emailing was small, short and simple. Then it grew, spread and
meillo@4 11 adopted to the changes. The core-concepts, however, remained the
meillo@4 12 same. During the XXX a small group of students at the University of
meillo@4 13 California, actively worked on MH. They added features and optimized,
meillo@4 14 like it is common for scientific work. This is still in pre-ANSI C
meillo@4 15 times. The source code contains many ancient parts. Code constructs
meillo@4 16 specific to BSD or hardware of that time are usual.
meillo@4 17 .P
meillo@4 18 Nmh started eight years after the ANSI C standard had been
meillo@4 19 established. A more modern coding style entered the code base. Still
meillo@4 20 a part of the developers come from ``the old days''. The developer
meillo@4 21 base became more diverse and thus the code. Programming practices
meillo@4 22 from different decades merged into the project. Different coding
meillo@4 23 styles came together. It appears as if multiple peers added code
meillo@4 24 parts, resulting in a conclomeration rather than an homogenic
meillo@4 25 of-one-cast mail system. Still, the basic concepts hold it together.
meillo@4 26 They were mostly untouched throughout the years.
meillo@4 27 .P
meillo@4 28 Although, at the surface, nmh is a toolchest, meaning a collection
meillo@4 29 of completely modularized small programs, on the source code level,
meillo@4 30 it is much more interweaved. Parts of the basic functions are
meillo@4 31 collected in a MH standard library, which is good, but often
meillo@4 32 separate functions are compiled into programs, for effiency reasons.
meillo@4 33 This lead to intricate innards.
meillo@4 34 The advent of MIME rose the complexity of email by a magnitude. This
meillo@4 35 is visible in nmh. The MIME-related parts are the most complex ones.
meillo@4 36 It's also visible that MIME support had been added on top of the
meillo@4 37 original MH later. The MH style made this easily possible, but it
meillo@4 38 also lead to duplicated functions (e.g. \f(CWshow\fP, \f(CWmhshow\fP)
meillo@4 39 and had not been thoroughly included into the concepts (e.g. the
meillo@4 40 user-visible access to whole messages and MIME parts are inherently
meillo@4 41 different).
meillo@4 42 .P
meillo@4 43 For compatibility's sake, it is a common understanding to have the
meillo@4 44 default settings to be compatible, requiring any new feature to be
meillo@4 45 explicitely enabled. This puts a burden on new users, because nmh
meillo@4 46 out-of-the-box keeps staying in the same ancient style, where users
meillo@4 47 usually want to have it practical for modern emailing.
meillo@4 48 But of course, this depends on if nmh is seen to be a front-end or a
meillo@4 49 back-end.
meillo@4 50
meillo@4 51 .H1 "My Vision
meillo@4 52 .P
meillo@4 53 The general goals of the mmh project are the following:
meillo@4 54 .BU
meillo@4 55 I believe that mmh should be perfectly suited for modern emailing,
meillo@4 56 out-of-the-box.
meillo@4 57 .BU
meillo@4 58 I care less about compatibility and more about conceptionally elegant
meillo@4 59 approaches.
meillo@4 60 .BU
meillo@4 61 I care for general, clear, and simple concepts.
meillo@4 62 .BU
meillo@4 63 I like to create an of-one-style email system.
meillo@4 64 .BU
meillo@4 65 I plan to remove any optimizations that rises obscurity, unless it
meillo@4 66 appears to be neccessary to make mmh usable at all.
meillo@4 67 .P
meillo@4 68 .B "The target user in mind
meillo@4 69 likes Unix and its philosophy.
meillo@4 70 He likes to use programs that are conceptionally appealing.
meillo@4 71 He's familiar with the command line and enjoys its power.
meillo@4 72 He is at least capable of shell scripting and wants to improve his
meillo@4 73 productivity by scripting the mail system.
meillo@4 74 His computer and operating system are from post-ANSI C times.
meillo@4 75 He likes to attach files, exchanges text containing non-ASCII
meillo@4 76 characters, signs or encrypts his messages.
meillo@4 77 He does not use bulletin boards anymore, nor non-mbox style mail
meillo@4 78 drops, nor does he rely on compatibility to nmh.
meillo@4 79 He already has and MTA/MSA and MRA running or is able to set them
meillo@4 80 up.
meillo@4 81 He does not want to have to read a book in order to make his MUA
meillo@4 82 usable.
meillo@0 83
meillo@0 84 .H1 "Things to do
meillo@0 85 .P
meillo@4 86