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
|