Subject: One Size Fits All
To: Matt Curtin <cmcurtin@interhack.net>
From: Miles Nordin <carton@Ivy.NET>
List: netbsd-advocacy
Date: 12/04/1999 00:14:53
[moved to netbsd-advocacy to avoid starting an OS war on mailing lists i
don't read]

On 2 Dec 1999, Matt Curtin wrote:

> if you have a specific need, you might find that one satisfies that
> need a bit better than the other. . . . The "one size fits all"
> mentality that permeates mainstream computing is really the backward
> way of looking at things.

How about an example, Matt?

I want to be convinced that Irix, Solaris, FreeBSD, OpenBSD, and NetBSD
are all different-sized hammers optimized for specific jobs.  I think they
aren't. I think they are five attempts at making The Uberhammer, all of
which are incomplete.  In some rare cases, one attempt has less
inconvenient incompletenesses than another.  Fine.

More often, _much_ more often, one ends up running 

 o Irix because he needs to use some biological software that depends on
   closed-source SGI libraries and hardware specs;

 o Solaris because it is the only OS with support for the proprietary
   SPARCprinter SBus card;

 o FreeBSD because his Oracle support contract is invalid with another OS;

 o and OpenBSD because some luser SA at the local University told him it
   was ``more secure.''

None of these excuses has anything to do with ``one size fits all.'' They
are all pure marketing bullshit.  It has nothing to do with which hammer
is the exact right size--it has to do with who's sleeping in whose bed on
``The Young and the Restless.'' You think you are choosing the best hammer
for the job, but really you are helping Chrissy slip under the sheets with
Ferdinando without Eric discovering the tragic betrayal.


I think this type of statement is all-too-common appologetics for not
making and defending a real evaluation.  As indeed I see no effort at an
evaluation in your post, I need to be convinced otherwise.  I think you're
saying this because you want to babble on without making anyone angry. I
think you are very conscious of this intention to play diplomat.  Well, so
be it--you have made _me_ angry at least.  Sloppy, gushy, egocentric
thinking is the downfall of many an Industry, and I won't endorse it in
this one.  I am not offended by people from other projects who disagree
with me, and hope they aren't offended by me--but being afraid to think or
speak for yourself because you're going to hurt someone's precious
feelings is a bit hard to stomach.  By all means, hurt my feelings.  But
let's permit ourselves some idea of good and bad, lest we start coding
with no goal other than to ``get Bill'' like Linux and Novell.

Different people contribute to different projects because of their
differing opinions on the course this industry should take.  I accept that
Solaris, FreeBSD, Linux, and even OpenBSD all have competent contributors
who do work that's worthy of my praise, but although I may praise specific
work that they've done, if I though their projects had the right idea I'd
go advocate for them instead.  I believe NetBSD is superior and will
become more so.  I can somewhat understand not having a strong opinion
about this, and certainly I do not insist that everyone agree with me, but
I think that ``if you have no opinion, it is because you are ignorant of
the need for an opinion.'' And you go yet one step further, and argue that
it is folly to have any opinion at all--``each os has its strengths and
weaknesses.''  Lies!  This is not Kindergarten parent-teacher
conference week.  I don't want to play musical chairs with more chairs
than people.


In other posts, others and I have explained why NetBSD's
``multiplatformness'' is not the primary goal of the project so much as it
is a consequence of insisting upon clean, well-organized code.  People who
want to do ports realize well-organized code makes hardware ports
tremendously easier, so they add their port to NetBSD. Clean code makes it
practical for the Project to integrate and maintain lots of these ports
over time, so they do not sink into forgetful oblivion as on Linux, or rot
from lack of maintenance as on OpenBSD. Maintaining over twenty ports
enforces clean code and reminds us not to get lazy. Clean code also gives
developers the occasion and the ability to spot security problems before
someone exploits them.  Lastly, clean code helps developers learn to write
clean code.  NetBSD tends to favor such clean code over
checkbox-whitepaper-features.

For example, Jason Thorpe recently rewrote the Tulip driver, because the
old one had some odd problems and was hard to maintain if i understand
correctly--a Linux developer probably would have spent his time
implementing a driver for some other kind of Ethernet card that Windows
supports and Linux doesn't.  I'm not sure the Linux folk have ever had any
motivation to _rewrite_ a driver.  They _replaced_ the 53C810 driver with
one from FreeBSD, but they didn't rewrite the old one--they just abandoned
it.  This is an example of how clean code contributes to stability.  
While I am to understand FreeBSD is consistently more stable than Linux,
they have different priorities than NetBSD does.  They support hardware
that we don't.  No doubt they value stability highly, but their priorities
lean toward Linux-ish copious and prompt driver availability, rather than
stability. So let's say ``FreeBSD supports more drivers,'' and not
``FreeBSD is The Most Stable.'' because that is the current state of
affairs, and that is the goal and philosophy behind their project.  It's a
commendable one, but it's not the one that's usually stated, and it's not
the one that's most readily defendable.  

Granted, FreeBSD is very stable. Granted, FreeBSD considers stability
extrememly important.  But, I have heard more than once these mumblings
that ``FreeBSD is the Most Stable,'' and I think it's a crock.  I think to
say that they have been ``concentrating on stability on the i386
platform'' while NetBSD ``ports to other platforms'' is worse than
misleading.  Writing more drivers for the i386 platform is not the same as
``focusing on stability''--depending on how you look at it, it could turn
out to be just the opposite.  

This sort of Most Stable talk is a matter of matching the Names in Column
A to the Features in Column B, which is clearly nonsense. I am not saying
FreeBSD isn't stable.  I personally have more faith in NetBSD's
fundamental stability because of the clean code arguments above, but I
certainly wouldn't take it as known and granted that NetBSD is the Most
Stable either.  All I'm saying is that this ``FreeBSD is the Most Stable''
stuff needs a rest, _now_.


As for OpenBSD, i'll take an excerpt from the nice short Manifesto to
which Charles Hannum refered us a while ago:

http://www.mit.edu/afs/sipb.mit.edu/user/mycroft/artwork/what-is-netbsd.ps

``NetBSD has consistently had the fewest known security problems, as
measured by vulnerability to holes reported in public forums such as
bugtraq.''

I hope I don't need to point this out and admire the Manifesto's tact in
not doing so publicly, but:  I think the difference between this kind of
statement above, and the sort of markreting ``spin'' you get from my
posts, and also from the OpenBSD Security Boasting Site, is readily
apparent.


-- 
Miles Nordin / v:1-888-857-2723 fax:+1 530 579-8680
555 Bryant Street PMB 182 / Palo Alto, CA 94301-1700 / US