*BSD News Article 34223


Return to BSD News archive

Xref: sserve comp.os.386bsd.questions:12302 comp.os.386bsd.misc:3169
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!munnari.oz.au!sgiblab!nbn!hilbert.dnai.com!agate!howland.reston.ans.net!news.cac.psu.edu!news.pop.psu.edu!ra.nrl.navy.mil!sundance!cmetz
From: cmetz@sundance.itd.nrl.navy.mil (Craig Metz)
Newsgroups: comp.os.386bsd.questions,comp.os.386bsd.misc
Subject: Re: Whats wrong with Linux networking ???
Date: 11 Aug 1994 13:52:16 GMT
Organization: Information Technology Division, Naval Research Laboratory
Lines: 71
Message-ID: <32daeg$flv@ra.nrl.navy.mil>
References: <Cu8CBr.Fx@calcite.rhyolite.com> <CuBw0A.Ayy@calcite.rhyolite.com> <32bfg0$sol@ra.nrl.navy.mil> <1994Aug11.062307.29008@cs.brown.edu>
NNTP-Posting-Host: sundance.itd.nrl.navy.mil

In article <1994Aug11.062307.29008@cs.brown.edu>,
Mark Weaver <mhw@cs.brown.edu> wrote:
>In article <32bfg0$sol@ra.nrl.navy.mil>,
>Craig Metz <cmetz@sundance.itd.nrl.navy.mil> wrote:
>>	So, you are advocating never doing anything new?
>
>Did you even bother reading his rebuttal?  It was quite clear.

>He's saying that an experienced designer/programmer is able to
>determine how to improve an implementation through design ALONE
>(ie, before writing a single line of new code).  Once one knows
>how to improve the design, THEN rewriting code can be a very good
>thing.
>
>If you have to fully implement something to know if it's going to
>be better than the first, you probably haven't spent enough time
>on the design phase, and thus are likely to produce an inferior
>product.

>For the most part, I agree with him.  There are exceptions though.

>Occasionally, in research, it is necessary to try experimental
>implementations because it is either impractical to predict the
>behavior of a complex system or because one lacks certain necessary
>statistical information.  However, in these cases the new design
>has been well thought out and generally promises a potentially
>significant reward.

>As long as you're confining yourself to the existing NFS protocol,
>I very much doubt that there are implementation decisions which
>require experimentation.  I'm much more inclined to believe that
>it's NIH -- but I can't say for sure.

>That's not to say that NIH is necessarily such a bad thing.  I am
>a chronic sufferer of NIH myself, and it has taught me better than
>any computer course.

	One place in which Linux is significantly different than BSD is
that most of the people doing Linux are more above-average-Joe type people.
The Linux community doesn't have fifty Vernon Schryvers and Van Jacobsons
to design everything perfectly in advance and implement things well the
first time. There is a lot of evolution involved, and there is a community
learning process involved. Many of the people doing major code segments 
have done similar things before -- some of the people doing the networking, 
if I am not mistaken, had a hand in networking for MINIX, and others did
packet radio. But none of them are people who have made a living for a 
decade doing these things. On the other hand, they do their design and 
development in the open, and I'm sure any useful advice (hint: ``Why didn't
you just use the BSD code'' isn't particularly useful advice) from Vernon,
Van, or anyone else in that category would be very well recieved in both
phases. Nobody's going to hold their breath for them, though. 

	What I really disagree with here is that many people, Vernon definitely
being the loudest, keep saying that the Linux communities shouldn't even try
to create and implement new designs because, obviously, the BSD code is far
superior to everything else. I strongly disagree. Even if it ends up a total
failure deserving of another rewrite or going to the BSD code, it is imperative
that people try new designs and implementations. Most will be bound to failure
or to only being a learning exercise. But, throughout the history of society,
it's the crazy things that people thought shouldn't be done that have tended
to advance the state of the art. I'd like to think that some such crazy things
will come from the Linux community. Maybe it'll happen, maybe it won't. But
if nobody ever tries crazy things like that, then there will never be 
advancement of the state of the art. Similarly, radical new improvements tend 
not to come from the experienced veterans, but from the green and even naive
amateurs. Unless you're content to see only incremental improvements, you
should encourage new designs and oddball ideas, because a few of them will
be advancements.

									-Craig