docs/master

view ch02.roff @ 5:8cc0af0724c2

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