[OFFTOPIC] changing Linux development model (was Re: Ken Thompson interview in IEEE Computer magazin

Nathan Hand (nathanh@wookie.chirp.com.au)
Fri, 7 May 1999 17:06:31 +1000


On Thu, May 06, 1999 at 11:39:39PM +0530, Janardhanan Radhakrishnan wrote:
> Hi all,
>
> I have seen a lot of thoughts pouring out in this thread. Some
> say Linux is the best I can get for my money. Others say that
> yes linux has good code as well as bad code. Accepting the truth
> however bitter it is, is one thing and thinking about the possible
> ways to make it not repeated again is another thing.
>
> Now that Linux had made its presence in many commercial
> environments and has attained a momentum in the OS world it is
> you people who should try to sustain it. Therefore one should
> think of ways to improve the process of development this
> beautiful little kernel, however small it may be.
>
> One of you guys should really sit down and prepare a document
> on Linux coding style issues which should be publicized generously.
> It would guide many developers around the world on how to code in
> the proper way. This should go forward in the way of popularizing
> a universal coding practice. Then atleast we can limit the drastic
> variation in the quality of code from one place to the other.
>
> The next one is, often the kernel gets the blackmark for some
> ugly driver doing something ugly somewhere that would hamper the
> whole kernel's performance. Although Rubini's wonderful book on
> device drivers is there, the important points from that book and
> additional data if needed should be skimmed out so that it presents
> an easy reference to the device driver developer.
>
> Mostly as I see the ugly part of any code is a result of improper
> design. This should be avoided. Before really coding out anything
> the DFD should be drawn and the interaction between the verious
> modules should be clearly put forth. The design can be brain
> stormed in the list that will result in a more refined design.
>
> It is high time that Linux embraces some sort of software engineering
> model rather than remain as a kernel hackers play toy.
>
> Comments?

Well, using the current methods have transformed Linux from twenty
or so source files, support only for 386 and IDE drives, truly bad
performance and no TCP/IP, into this kernel that's being seriously
considered as a viable replacement for commercial kernels and even
for embedded systems.

So your suggestion sounds a bit like "don't do what works, instead
do what the text books say". Why change what is working?

You might like to consider Linux as an "experiment" in distributed
software development. Linux encourages multiple redundant attempts
to achieve the same goal. Users are used to test code, rather than
traditional regression testing or faked test environments. There's
no design, no road path, no authority except popular consensus.

Yet surprisingly these attributes - traditionally seen as the best
ways to waste money or kill software projects - seem to be exactly
what keeps Linux popular. Redundant projects compete, so unpopular
projects die. Users provide orders of magnitude more diversity for
testing. No design or road path allows Linux to adapt quickly.

Linux isn't an efficient development model, but humans aren't very
efficient animals. The chaotic nature of Linux keeps it strong. If
you imposed a different model I suspect you'd kill it.

-- 
Nathan Hand - Chirp Web Design - http://www.chirp.com.au/ - $e^{i\pi}+1 = 0$
Phone: +61 2 6230 1871   Fax: +61 2 6230 4455   E-mail: nathanh@chirp.com.au

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/