Bell Labs vs MIT 
Author Message
 Bell Labs vs MIT

Hi Folks,

I forgot the title of a paper - it compared the design principles of Bell
Labs and MIT. Could anybody send me the title - an URL would be more
helpful.

Thanks in advance,

- Gergely



Mon, 02 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

>I forgot the title of a paper - it compared the design principles of Bell
>Labs and MIT. Could anybody send me the title - an URL would be more
>helpful.

That would be the classic paper

        "Lisp: Good News. Bad News. How to Win Big", by Richard P. Gabriel

especially the "Worse is Better" section.  It's at

        http://www.ai.mit.edu/docs/articles/good-news/good-news.html
        http://www.ai.mit.edu/docs/articles/good-news/good-news.dvi

and most LISP repositories.



Mon, 02 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

>I forgot the title of a paper - it compared the design principles of Bell
>Labs and MIT. Could anybody send me the title - an URL would be more
>helpful.

I think you're after Richard P. Gabriel's paper "Lisp: Good News, Bad News,
How to Win Big".  It's a brilliant paper, IMHO, and well worth reading.
The URL is <http://www.ai.mit.edu/docs/articles/good-news/good-news.html>.

--

WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"



Mon, 02 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT
Ross Paterson:

Quote:

> >I forgot the title of a paper - it compared the design principles of Bell
> >Labs and MIT. Could anybody send me the title - an URL would be more
> >helpful.

> That would be the classic paper

>    "Lisp: Good News. Bad News. How to Win Big", by Richard P. Gabriel

That paper has sort of a sequel, R. P. Gabriel's  book _Patterns_of_
Software_ on patterns, design principles, habitable software, ...
Those interested in the cited paper may want to read this fine book, too.
Cf. http://www.oup-usa.org/docs/019510269X.html

rthappe



Tue, 03 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

> > That would be the classic paper

> >       "Lisp: Good News. Bad News. How to Win Big", by Richard P. Gabriel

To my mind this paper is less than "classic" since it contains a very big
flaw in it in my opinion. The paper characterises the New Jersey way of software
building as "creating something that's 50% of what you want, letting it
spread, and then subsequentely improving it to 90% of what you want". The
paper contends that this is a better approach to software development than
the MIT way. However there is a subtle flaw in this so called New Jersey
approach, namely that it assumes that you *can* improve your 50%-of-what-
you-want system to a 90%-of-what-you-want system. I have worked on too many
projects that have tried exactly this 50->90 transition and *failed*. They
failed for two reasons:

a) intertia -- people liked the 50%-system and had invested heavily in
time and
resources in it's usage, and subsequently didn't want to allow any changes
necessary to make the 90%-system.

b) technical reasons -- early design decisions in creating the
50%-system make
it technically impossible to improve it to a 90%-system.

An example of b) is C and garbage collection. C's early decision to have pointers
now precludes proper safe garbage collection (yes I know about the Boehm
collector, but it's not safe like say an ML collector).

An example of a) is the Macintosh Operating system. Much fuss is created every
time Apple changes the OS to get rid of "undesirables" from the early days
(like system extensions).

Some kinds of software can successfully do a 50%->90% shift, but a lot cannot.
And that is a big flaw in the New Jersey way.

graham



Tue, 03 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

>building as "creating something that's 50% of what you want, letting it
>spread, and then subsequentely improving it to 90% of what you want". The

Yes, but I always thought of *designing* for 90%, implement 50%, spread and
then reach 90%

--



Tue, 03 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

> To my mind this paper is less than "classic" since it contains a very big
> flaw in it in my opinion. The paper characterises the New Jersey way of software
> building as "creating something that's 50% of what you want, letting it
> spread, and then subsequentely improving it to 90% of what you want". The
> paper contends that this is a better approach to software development than
> the MIT way. However there is a subtle flaw in this so called New Jersey
> approach, namely that it assumes that you *can* improve your 50%-of-what-
> you-want system to a 90%-of-what-you-want system. I have worked on too many
> projects that have tried exactly this 50->90 transition and *failed*. They
> failed for two reasons:

Yes, this is true.

On the other hand, the "create 100% of what you want in one shot" has
its problems as well.  You might run out of money before the project is
complete.  You might discover only at the end that you made fundamental
mistakes in your original design, but there's way too much investment to
make major changes now.  You might create something that goes over the
top in complexity and feature creep.  Or you might suceed, but too late:
your competitor with the 50% solution has already established a
monopoly.

There are advantages and disadvantages to both sides, but I think it's
not an accident that almost all of today's commercially successful
software used the 50->90 model.

--
"To summarize the summary of the summary: people are a problem."
Russell Wallace



Wed, 04 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

> > However there is a subtle flaw in this so called New Jersey
> > approach, namely that it assumes that you *can* improve your 50%-of-what-
> > you-want system to a 90%-of-what-you-want system. I have worked on too many
> > projects that have tried exactly this 50->90 transition and *failed*. They
> > failed for two reasons:

> Yes, this is true.
> ...
> There are advantages and disadvantages to both sides, but I think it's
> not an accident that almost all of today's commercially successful
> software used the 50->90 model.

It's also not an accident that technically speaking most of today's
commercially successful software is awful (bugs, inconsistencies,
etc). It seems to me that if you are writing software to be
commercially successful then use the New Jersey model. If you
are writing software for other reasons then don't use the New
Jersey model.

graham



Wed, 04 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:


>> There are advantages and disadvantages to both sides, but I think it's
>> not an accident that almost all of today's commercially successful
>> software used the 50->90 model.

>It's also not an accident that technically speaking most of today's
>commercially successful software is awful (bugs, inconsistencies,
>etc). It seems to me that if you are writing software to be
>commercially successful then use the New Jersey model. If you
>are writing software for other reasons then don't use the New
>Jersey model.

I think this applies to success in general, not just commercial success.
Look at Linux vs Hurd, for example.

Linux started out as an x86-only Unix clone, written with no attempt at
portability in mind, but it now runs on just about everything bar your
shoe-phone.  Clearly an example of the 50->90 model.

--

WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"



Thu, 05 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

> Linux started out as an x86-only Unix clone, written with no attempt at
> portability in mind, but it now runs on just about everything bar your
> shoe-phone.  Clearly an example of the 50->90 model.

x86 vs. the world can be a more entertaining example.  Can you
believe that this crappy ISA (instruction set architecture) is
now the top performer in the general purpose computer world?
(By "general purpose" I mean to exclude vector processors and
other more {*filter*} systems currently suited only for specialized
applications.)

Face it.  x86 ISA is crap.  x87 (floating point) ISA is even
more crappier.  Yet look how far they have gone now.

-- Chuan-kai Lin



Thu, 05 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

> > There are advantages and disadvantages to both sides, but I think it's
> > not an accident that almost all of today's commercially successful
> > software used the 50->90 model.

> It's also not an accident that technically speaking most of today's
> commercially successful software is awful (bugs, inconsistencies,
> etc). It seems to me that if you are writing software to be
> commercially successful then use the New Jersey model. If you
> are writing software for other reasons then don't use the New
> Jersey model.

The key, I think, is getting the core architecture reasonably close to
right.  (Where I'm using architecture in Brooks's sense to mean only
what the outside world sees.)  Implementations can be redesigned and
rewritten later if need be, provided they keep the same interface, but
if you make a mess of the interface, not all your tears will wash out a
word of it.

Unix is a good example; the original version lacked a lot of features
now considered essential, but the architecture was clean and well
designed, and nowadays Unixes run enterprise servers with MTBF measured
in years.

Windows NT is a good counterexample; its problems aren't for want of
debugging effort, they're because the architecture was botched, and I
doubt if a million man-years of effort now would make it reliable.

--
"To summarize the summary of the summary: people are a problem."
Russell Wallace



Thu, 05 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

> I think this applies to success in general, not just commercial success.
> Look at Linux vs Hurd, for example.

> Linux started out as an x86-only Unix clone, written with no attempt at
> portability in mind, but it now runs on just about everything bar your
> shoe-phone.  Clearly an example of the 50->90 model.

Well, clearly an example of the 5-38 model, anyway.

Cheers,
Julian.



Thu, 05 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

> > > There are advantages and disadvantages to both sides, but I think it's
> > > not an accident that almost all of today's commercially successful
> > > software used the 50->90 model.

> > It's also not an accident that technically speaking most of today's
> > commercially successful software is awful (bugs, inconsistencies,
> > etc). It seems to me that if you are writing software to be
> > commercially successful then use the New Jersey model. If you
> > are writing software for other reasons then don't use the New
> > Jersey model.

> The key, I think, is getting the core architecture reasonably close to
> right.

I agree with this -- the architecture is the key. And to my mind this
is the flaw in both the "50->90 New Jersey" way of building software
and the "MIT way". In the 50->90 model one makes architectural
decisions early on in the 50% bit that often preclude capabilities
later in the 90% bit (worse it's not clear that one is making such
architectural decisions). In the MIT approach one has to somehow
predict all architectural requirements before implementing anything.
That's very very hard to do right.

For my money both the MIT and New Jersey way are the wrong way to
build software, not that I know what the right way is.

graham



Thu, 05 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:

> It's also not an accident that technically speaking most of today's
> commercially successful software is awful (bugs, inconsistencies,
> etc). It seems to me that if you are writing software to be
> commercially successful then use the New Jersey model. If you
> are writing software for other reasons then don't use the New
> Jersey model.

So finally, your criticism notwithstanding, you tend to agree
with Gabriel's "Worse Is Better" paper which I don't recall at
all to measure excellence by commercial (or reproductive) success.
"Unix and C are the ultimate computer viruses."

rthappe



Thu, 05 Sep 2002 03:00:00 GMT  
 Bell Labs vs MIT

Quote:


>For my money both the MIT and New Jersey way are the wrong way to
>build software, not that I know what the right way is.

Well, perhaps it's time to quote Fredrik Brooks: "Plan to throw one
away, you will anyway." And the less you build before that becomes
evident, the easier it is to throw it away...

Regarding Linux and architecture, of course most of the architecture
was already there in the first place, Linux is very traditional in its
design. Compare that with Hurd, where the opposite is (almost)
true. Perhaps other successful open source software would tell us
more, what about Apache? Does anyone have inside info on it?

Stefan,
--
Stefan Axelsson                         Chalmers University of Technology

(Remove "rmovt.rply" to send mail.)



Thu, 05 Sep 2002 03:00:00 GMT  
 
 [ 17 post ]  Go to page: [1] [2]

 Relevant Pages 

1. bell-Labs Low-Level Linked-List Language (L6)

2. NO PYTHON: http://cm.bell-labs.com/cm/cs/who/bwk/interps/pap.html

3. B. G. Ryder and A. D. Hall, Bell Labs, Murray Hill

4. BELL LABs Job Position

5. ANNOUNCE: Bell Labs Tcl/Tk Training

6. ANNOUNCE: Bell Labs Tcl/Tk Training

7. Looking for G. A. Howlett, ATT Bell Labs

8. MIT Media Lab Tightens Its Belt

9. Star LOGO from MIT Media Lab

10. Ass't Sys Admin/MIT AI Lab

11. mit vs chez question

12. MIT Scheme 7.5a and MIT Scheme 7.4.2

 

 
Powered by phpBB® Forum Software