9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "david presotto" <presotto@closedmind.org>
To: <9fans@cse.psu.edu>
Subject: Re: [9fans] code complexity
Date: Tue,  5 Feb 2002 12:20:51 -0500	[thread overview]
Message-ID: <003d01c1ae69$767283e0$1765c0d0@cc583254b> (raw)
In-Reply-To: <Pine.LNX.4.33.0202050941120.8565-100000@snaresland.acl.lanl.gov>

Simplicity pretty much goes out the window when
you try to keep up with the world since the world
isn't simple.  Try to build a browser that supports
just enough to get along with the pages that are
out there and you still end up with something 
bigger than Plan 9 no matter how hard you work
at it.

The question however is not the total size of the code
but the complexity of the internal interactions.  If
one added as many device drivers to Plan 9 as one
has in Windows or Linux, our code base would be
truly huge also.  However, the complexity of any
instance of plan 9 wouldn't be anygreater because the
vast body of device drivers do not interact with
each other and any particular instance will have a
small selection of them in use.  They all follow
pretty much the same API talking to the kernel
and to programs and that API is not very large.

It would be nice if such an approach could be
applied to a browser.  I haven't seen the inards
of Opera, so perhaps it has.  It definitely isn't
true of netscape or exploder.

One of the problems of uncontrolled excess is
that API's tend to get very wide to cover all possible
corners.  (The same is true of  in other arenas,
hence the current cross over cars that are SUV's,
compacts, luxury cars, and trucks all built into
one.)  The wider the API, the larger the number
of interactions with that piece of code and everything
that interfaces with it.  We've tried to keep API's
small to avoid that, i.e., put in what's absolutely
necessary and drag our heels on everything else.
However, that means saying no to a lot of
people with real problems, people we ignore
in order to keep our playland comprehensible.
To that extent Linux is much truer to the ideals
of an open market than Plan 9 or BSD.  If
something it wanted by enough people, it appears
no matter what it does to the complexity or
supportability of the code.

This leads back into the DLL discussion because,
once someone has DLL's, they tend to feel that
the size of the API no longer matters, everyone
will be sharing the code bloat so why bother
keeping things small.  There's nothing inherent in
the existence of DLL's that causes this, it's just
human nature.




  reply	other threads:[~2002-02-05 17:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-05 16:34 Russ Cox
2002-02-05 16:39 ` Boyd Roberts
2002-02-05 16:42   ` Ronald G Minnich
2002-02-05 17:20     ` david presotto [this message]
2002-02-05 23:06       ` Steve Kilbane
2002-02-05 20:24 ` philw
2002-02-06  1:01   ` ozan s yigit
2002-02-05 22:28 ` Dan Cross
  -- strict thread matches above, loose matches on Subject: below --
2002-02-06  0:10 [9fans] XP (was: code complexity) geoff
2002-02-06  0:29 ` [9fans] code complexity George Michaelson
2002-02-06 10:47   ` Boyd Roberts
2002-02-06 20:49     ` Andrew Simmons
2002-02-05 16:41 Russ Cox
2002-02-05 14:24 Richard Uhtenwoldt
2002-02-05 14:47 ` Matt H

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='003d01c1ae69$767283e0$1765c0d0@cc583254b' \
    --to=presotto@closedmind.org \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).