docs/master

annotate future.roff @ 161:72ef1f2e58a3

More text for the Future/Summary chapter.
author markus schnalke <meillo@marmaro.de>
date Mon, 09 Jul 2012 17:40:08 +0200
parents a6dc418ab0a4
children
rev   line source
meillo@161 1 .H0 "Summary
meillo@132 2 .P
meillo@161 3 This document describes and explains my work on mmh.
meillo@161 4 I have streamlined the project by removing programs, facilities
meillo@161 5 and options that diverted from the main task of mmh, being a MUA.
meillo@161 6 I have modernized the code base removing obsolete functions and
meillo@161 7 activating modern features per default.
meillo@161 8 Further more, I improved the style by refactoring clumpsy code
meillo@161 9 and by defining or exploiting clear concepts.
meillo@161 10 All my work was motivated by Antoine de Saint Exupery's well-known
meillo@161 11 statement:
meillo@161 12 .[
meillo@161 13 antoine de saint exupery: Wind, Sand and Stars (1939)
meillo@161 14 .]
meillo@132 15 .QS
meillo@132 16 It seems that perfection is attained not when there is nothing
meillo@132 17 more to add, but when there is nothing more to remove.
meillo@132 18 .QE
meillo@161 19 .P
meillo@161 20 In contrast to the common expectations, I have hardly added new features.
meillo@161 21 I regard my improvements in selecting the relevant set of existing
meillo@161 22 features and exploiting the concepts more thoroughly.
meillo@161 23 I believe, the result is a system simpler and clearer for both
meillo@161 24 developing and using, without lacking important functionality.
meillo@132 25
meillo@161 26
meillo@161 27 .U2 "Work Left to Do
meillo@148 28 .P
meillo@161 29 The work done during the project is not finished.
meillo@161 30 Several tasks are left to do, mainly the MIME integration.
meillo@132 31 .P
meillo@161 32 MIME handling is the most complex part of mmh and it requires
meillo@161 33 general rework.
meillo@161 34 The changes already done to it build upon the existing structure.
meillo@161 35 Yet, MIME support is not truly integrated.
meillo@161 36 For instance, accessing messages and accessing MIME parts of messages
meillo@161 37 have inherently different concepts, although a single concept should
meillo@161 38 cover both.
meillo@161 39 The sequence notation should provide a way to address MIME parts directly.
meillo@161 40 Furthermore, the sequence notation should be made more powerful in general.
meillo@161 41 For instance, it is currently not possible to access the second last
meillo@161 42 message in a given sequence.
meillo@161 43 Displaying messages with
meillo@161 44 .Pn show
meillo@161 45 requires further rework.
meillo@161 46 Encrypted messages, for example, should be decoded automatically
meillo@161 47 and digital signatures should be verified on-the-fly.
meillo@161 48 The whole task should be aligned with the common behavior of other
meillo@161 49 mail clients.
meillo@161 50 MH's unique features should not be lost, but the default should become
meillo@161 51 less surprising.
meillo@161 52 Transfer-decoding of the quoted text in replys and encoding of non-ASCII
meillo@161 53 characters in message header fields like
meillo@161 54 .Hd Subject
meillo@161 55 remain unsolved.
meillo@132 56 .P
meillo@161 57 Besides MIME-related tasks, some tools were not worked on yet.
meillo@161 58 Among them are
meillo@161 59 .Pn dist ,
meillo@161 60 .Pn rcvdist ,
meillo@161 61 .Pn mark ,
meillo@161 62 .Pn pick ,
meillo@161 63 and
meillo@161 64 .Pn sortm .
meillo@161 65 Concerning
meillo@161 66 .Pn sortm ,
meillo@161 67 a threaded message view is completely missing to mmh, yet.
meillo@161 68 .Pn pick
meillo@161 69 could profit from message indexing.
meillo@161 70 No research was performed in this field.
meillo@161 71 .P
meillo@161 72 The features most often asked for are Maildir and IMAP support.
meillo@161 73 Yet, both of them collide with MH in the same fundamental way as
meillo@161 74 different filesystem approaches would collide with Unix.
meillo@161 75 Nevertheless, a storage back-end abstraction layer could provide
meillo@161 76 a mapping from such back-ends to the MH storage format.
meillo@161 77 Research in this area is highly appreciated.
meillo@132 78
meillo@132 79
meillo@132 80 .U2 "Relationship to nmh
meillo@132 81 .P
meillo@161 82 The mmh project started as an experimental version of nmh because the
meillo@161 83 nmh community did not welcome my changes in the mainline version.
meillo@161 84 To not slow my work down by the need to convince the community in
meillo@161 85 discussions for each step I liked to take,
meillo@161 86 I started to create an experimental version to convicce by demonstration
meillo@161 87 of the result.
meillo@161 88 My worked on mmh was independent of the nmh community.
meillo@161 89 This enabled me to follow my vision straightly and thus produce
meillo@161 90 a result of greater pureness.
meillo@0 91 .P
meillo@161 92 Mmh shall be considered an inspiration for the future development of nmh.
meillo@161 93 It shall show identify weak part of nmh and suggest possible
meillo@161 94 improvements by change.
meillo@161 95 It shall present a lean appearance that is simpler to understand
meillo@161 96 and work with for developers and users.
meillo@161 97 By all means shall my work on mmh improve nmh in some way.
meillo@161 98 Improving nmh directly in the way I wanted was impossible for me
meillo@161 99 due to personal and community-related circumstances.
meillo@161 100 The mmh project is my way to offer my gifts though.
meillo@161 101 .P
meillo@161 102 During my work on mmh, the community of nmh suddenly became very active.
meillo@161 103 They have worked on nmh in parallel to my work on mmh.
meillo@161 104 There was no collaberation in our work, except that I have pulled some
meillo@161 105 changes from nmh to mmh.
meillo@161 106 Our work was motivated partly by similar and partly by different aims.
meillo@161 107 Although some changes are common among both projects,
meillo@161 108 fundamental differences exist.
meillo@161 109 My experimental version thus more and more felt like being a fork.
meillo@161 110 I am undecided how I like to have it.
meillo@161 111 Yet, I am strongly convinced that most of the decisions taken in mmh
meillo@161 112 were good to achieve my goals and I like to push the project even
meillo@161 113 farther in this direction.
meillo@161 114
meillo@161 115
meillo@161 116 .U2 "Weaknesses of My Work
meillo@161 117 .P
meillo@161 118 not targeting on the right problems (maildir, imap)
meillo@0 119
meillo@0 120 .P
meillo@161 121 refactoring requires testing, automated testing
meillo@132 122
meillo@53 123 .P
meillo@161 124 communication with nmh.
meillo@161 125 worked behind closed doors, but no:
meillo@161 126 talks I've given
meillo@148 127
meillo@148 128 .P
meillo@158 129 focus on myself.
meillo@158 130 But: If good for me then also good for others.