docs/diploma

diff thesis/tex/4-MasqmailsFuture.tex @ 254:db81f3cc6675

added thoughs about further dev ways
author meillo@marmaro.de
date Mon, 12 Jan 2009 12:53:03 +0100
parents 724cc6057105
children 68ef2040912a
line diff
     1.1 --- a/thesis/tex/4-MasqmailsFuture.tex	Mon Jan 12 12:52:36 2009 +0100
     1.2 +++ b/thesis/tex/4-MasqmailsFuture.tex	Mon Jan 12 12:53:03 2009 +0100
     1.3 @@ -372,6 +372,9 @@
     1.4  \subsubsection*{\TODO6: Extendability (\RG4)}
     1.5  Extendability does suffer from the monolithic architecture and is nearly impossible to improve without changing the programs structure. This property can hardly be retrofitted into software. Extendability is expected become important in the future as new protocols need to be supported.
     1.6  
     1.7 +\masqmail\ lacks an interface to plug in modules with additional functionality. There exists no add-on or module system. The code is only separated by function to the various source files. Some functional parts can be included or excluded by defining symbols at compile time. Adding maildir support, means giving the option \verb+--enable-maildir+ to the \path{configure} call. This preserves the concerning code to get removed by the preprocessor. Unfortunately the \verb+#ifdef+s are scattered through all the source, leading to a code that is hard to read.
     1.8 +%fixme: refer to ifdef-considered-harmful ?
     1.9 +
    1.10  
    1.11  
    1.12  
    1.13 @@ -455,6 +458,16 @@
    1.14  
    1.15  
    1.16  
    1.17 +---
    1.18 +
    1.19 +on venema: ``there'll be no second postfix'':
    1.20 +
    1.21 +Yes there will be one, when postfix becomes obsolete, and this day will come as requirements change. See sendmail for example: it had nearly the whole market ... and now it's dying. sendmail once also thought it would be the number 1, forever.
    1.22 +
    1.23 +cf. Tanenbaum vs. Linux: It was too early. Linux' time has not ended, but it will some day.
    1.24 +
    1.25 +anyway, masqmail is not intended to become a second postfix. It's more inteded to become a second qmail, but with a differend target field.
    1.26 +
    1.27  
    1.28  ---
    1.29  
    1.30 @@ -488,10 +501,37 @@
    1.31  All this leads to the wish of a rewrite of \masqmail, using a modern, modular architecture, \emph{if} further features need to be added---features that require changes in \masqmail's structure. But a rewrite is also mandatory, if \masqmail\ should become a modern \MTA, with good quality properties.
    1.32  
    1.33  
    1.34 +\subsubsection*{Further reasons for a new design}
    1.35  
    1.36 +impressing  simplicity of qmail: only about 1000 SLOC per file (= about one module). It's obvious what it does. cf. suckless.org
    1.37  
    1.38  
    1.39 +do not try to safe obsolete stuff. This will not work (see sendmail).
    1.40  
    1.41 +It is often done in commercial software, when it's about making money. Free software with volunteer programmers in contrast care about good software..
    1.42 +
    1.43 +If the design is bad, one should never hesitate to abandonne obsolete stuff and build it from scratch. (cf. makefiles and tab).
    1.44 +
    1.45 +But making a cut is hard, as it is still ``good enough''.
    1.46 +
    1.47 +
    1.48 +---
    1.49 +
    1.50 +repair strategies is only useful in the short time view and for hard times. but if the future is bright, one must invest. here it means redesigning to build up a more modern product. cf. ch02: the future is bright!
    1.51 +
    1.52 +Masqmail should have been redesigned in 2002 or so, when the old design was still quite suitable ... it already delayed too long.
    1.53 +
    1.54 +Clinging to much to existing code will be no help, it is an indicator for fear. Having the courage to through bad code away to make it better, shows the view forward.
    1.55 +
    1.56 +---
    1.57 +
    1.58 +repairing leaves a worse feeling. Free Software ``sells'' if it has a good userbase. Although qmail is somehow outdated and its author has released no new version since about 10 years, qmail has a very strong userbase and community.
    1.59 +
    1.60 +Good design, concepts and philosophy gives users good feelings and faith for the software. They become interested in using it and to contribute.
    1.61 +
    1.62 +
    1.63 +
    1.64 +The goal is good software. The wish to do good work is the motivation volunteers have. Work plans that lead to a good product will motivate volunteers to help with it. Hence more helpers may make the 2,5 man years for the new design, even become less absolute time than, few helping people that try to improve the existing code.
    1.65  
    1.66  
    1.67