Subject: Re: PPP

From: "J. Noel Chiappa" <[email-masked]>
Date: Thu, 28 Feb 2002 23:26:31 -0500

> From: Vernon Schryver <[email-masked]>

    >> Anyway, simple protocols, like PPP and ARP (another canonical subject
    >> of abuse) get reused in vile ways because the architecture which they
    >> are components of is fundamentally under-provisioned with mechanisms.

    > The architectures that are not "under-provisioned with mechanisms" are
    > total disasters, as anyone who was even slightly technically involved
    > with TP1-4 knows instinctively

Ahem. Just because your name is "Vern" doesn't mean my name is "not-Vern".
Similarly, not all architectures which are <not under-provisioned> are
<over-provisioned>. There is a space in the middle...

    > It is a fraud and a deceit to claim to be able to "architect"
    > provisions for a significant or even noticable part of the unforeseen
    > future. If your design covers any of the real future, as opposed to the
    > future you predicted, you're very lucky. It is not honest to confound
    > great luck with great skill or talent.

I don't agree with your contention that it's luck.

Let's take as an example Unix, which I would argue has lasted as long as it
has for two reasons: first, it was written in a basically portable language,
and second, the initial system provided basically the right set of
fundamental mechanisms/objects. Looking at the latter point, I think Unix V6
had the things it had not through luck, but because Ken Thompson et al
displayed *exactly* "great skill and talent".

It is true that if you're striking off into a new area, it's more of a gamble
- and when you have a success, sometimes there is some luck involved. For
instance, in TCP/IP, I think it's lucky that the system has working
congestion control - because we certainly didn't understand how to do it
right when we went down the "no congestion control in the switches" road back
in the mid/late-70's. It's to some degree luck that there was a workable
solution for someone clever to figure out. So when people are moving into a
new area, it often takes a while before you find out what the envelope of
what's viable is.

However, outside things like that, there is clearly a great part of system
layout where study of past systems and how they failed and succeeded, along
with some guidelines, allows people to design "great architecture". If you
look, you will actually find that quite often they knew that they had created
a successful architecture, and knew how and why they had done it, a long time
before it became obvious. Go look at the classic Thompson/Richie paper on V6
Unix for an example; and there are numerous others. The System/360
architects, and the PDP-11 architects, for example, both knew they had great
designs at a very, very early stage in the life cycle.

Also, you need to distinguish between "commercially successful" and
"technically successful". Sometimes systems fail to succeed in the market,
but not because they are poorly architected (i.e. a technical failure), but
because the company screws up in other ways. Multics is a classic example; I
was involved with one in the router business.

Someone (maybe Napoleon - or maybe someone said it of Rommel) once said that
great generals make their own luck. So it is with system architects.

	Noel