Jed Rothwell wrote:
> Stephen A. Lawrence wrote:
> 
>> Emacs, Linux, Mac OS, Solaris, OpenOffice, MS Word -- would you claim
>> that any of these have simply been left to sit on a shelf, and that's
>> why they haven't become so buggy they can't be used?
> 
> I meant just the opposite. They have been maintained, which is why MS
> Word (for example) is so buggy it can barely be used for some
> operations, such as multiple-chapter books with include files and
> endnotes for each chapter.

Horse pucky.

It could *NEVER* be used for those things -- they're not features which
got broken, they're features which never worked to start with.  Those
capabilities were not broken "because it was maintained".

That's why people used to pay $700 per seat for Frame.


> Believe me, I wasted weeks trying to do this.
> In 1990 I managed it easily with Word Perfect. It has never worked with
> MS Word,

That's what I just said.

> and with each revision it gets worse. 

If it never worked to start with how did it get worse?

> Some things can't be
> fixed. They need to rewrite this from scratch.

There is a limit to how much you can extend a design.  We agree on that.
  But what you said to start with is that the programs get *worse* with
time, until they *become* unusable.

That patently didn't happen here -- MS Word was *never* usable for
writing books.  Ten or 15 years ago it wasn't usable for ANY large
project; I wasted a lot of time finding out how broken its underlying
models seemed to be.

But that's not progressive decay; that's just something which started
broken and stayed broken.

> 
> 
>> > Brooks, by the way, refers to the book Frederick P. Brooks, "The
>> > Mythical Man Month," (Addison-Wesley, 1975).
>>
>> Yeah, we've learned some things about software design since 1975.
> 
> Alas, many programmers have not. Quoting J. Klatt, Byte Magazine, letter
> to the editor, July 1998: "as much as I enjoy my PCs, I often have the
> impression that they and their operating systems were designed by young
> people who somehow missed out on the entire history of computing
> technology. . . ."
> 
> Quoting S. Manes, "Windows 98: $90 Worth Of Duct Tape," /New York
> Times/, June 25, 1998: Windows is "an edifice built of bailing wire,
> chewing gum and prayer." That's what Brooks meant by patched-up software.
> 
> 
>> In 1975, how old was an "old" software package?  A few years?  Ten
>> years, at the outside?  Things have changed.
> 
> They haven't changed enough for me, by golly. A few years before she
> died Grace Hopper gave a lecture about data typing that she had back in
> the 1950, which would have fixed myriad problems,

So it takes a long time for things to make it from theory to
implementation. So what?  That has nothing whatsoever to do with your
contention that all programs get worse as time goes by, due to
accumulated fixes.


> and have still not
> been implemented! The hotshots at Google are now rediscovering them.
> 
> 
>> Nowadays there are products on the shelf based on code which dates back
>> 20 or 30 years.  I have named a bunch of them, all of which have
>> undergone extensive maintenance over the years . . .
> 
> "Extensive maintenance" means rewriting the code from scratch. That's
> what Brooks meant.

(I don't care what Brooks meant, I'm arguing with you, not him, and
appeal to authority cuts no ice.  If he had data to support his claims,
great, cite it, but his opinion from 1975 I couldn't care less about.)

I think you need to define "from scratch".

Most people use it to mean that not one line of code is carried over.

You've asserted that lots of companies do that to their flagship
products on a regular basis.  I've never heard of it happening, however,
and when it does, it is usually accompanied by a horrible dislocation
and occasionally a total disaster.

Did you notice what happened when NT was introduced?  It was, what, four
*years* before it was in good enough shape to replace Windows 95/98?
Note well:  Windows NT 4 (yes, *FOUR* -- there were versions before
that) was still only used by developers, and wouldn't run an awful lot
of consumer software.  I got a copy of it in 1997, I think (because I
was a developer and needed it), three years before Windows 2000 came
out, and it was far, far from being a replacement for Windows 95.  I
used to dual boot '95 for the stuff NT4 couldn't handle.

Only with windows 2000 did MS even get close enough to really mass
market it.  And even then, for the users there was a big step backwards
from '98 to 2000: a lot of software wouldn't run under 2000, or ran too
slowly, or had weird bugs.  That's why MS kept *TWO* versions of their
OS on the shelf for so many years:  The '95 branch, which worked the way
it was supposed to (within its limits, and without memory protection),
and the NT branch, which was their real, 'from scratch' rewrite, and
which, after three or four years, *STILL* was not up to snuff compared
with the '95/'98 branch of the code.

It was only with Windows XP that they got the NT code branch up to the
level where it could sensibly and completely replace their consumer
version of Windows.  Most companies would have been out of business
after a convulsion like that, and most companies *never* *do* *it*.


So, what exactly do *you* mean by "from scratch"?


> 
> 
>> . . . and none of which have shown a user-visible "bug explosion"
>> effect as a result of "too much maintenance".
> 
> They would be dead by now if people had not cleaned up the fundamental code.

"cleaning up the fundamental code" is not the same as "rewriting it from
scratch".


> 
> 
>> 1975 was nearly two decades before ANSI C.
> 
> On the other hand, we had Pascal back then which is still better than
> ANSI C, C++, or C++++++ ever will be, but I digress.

Oh, really.   Tell me about object oriented programming using Pascal.

Tell me about how simple and clean it is to keep a list of polymorphic
objects in Pascal. (Oh, you say variant records provide the same
capability?  Mrrmmphf mrrmph..)

Tell me, how do you write a storage manager using Pascal?

I programmed professionally in Pascal for quite a while.  There was not
one serious vendor implementation which was not extended in fundamental
ways, because the basic language was so crippled.  Unfortunately the
extensions were all slightly different, and the language committee
decided to adopt none of them, and so the language died.  Too bad; it
coulda been somethin'.  It coulda been a contenda.

It had strong typing, but it had no escape from it (see 'storage
manager' question, above).  It was not a SIL, and could not be used in
place of C++ in an awful lot of applications.


> 
> 
>> But as I said, things have changed.
> 
> Plus ça change, plus c’est la même chose.

Twaddle.  As you know perfectly well.

"There is nothing new under the sun."  That's twaddle, too, and the fact
that someone said it 2500 years ago doesn't make it any less twaddle.

> 
> - Jed

Reply via email to