Jed Rothwell wrote:
Michael Foster wrote:
Just another Chicken Little running around in
metaphorical circles shouting, "The sky is
falling! The sky is falling!"
I agree, but this is worse, because we really do face a crisis. We may
not face rack and ruin but the price of natural gas will go up 60%
this winter, and in Atlanta tens of thousands of people will not be
able to pay their bills.
A Chicken Little who goes around yelling about problems that do not
exist causes no harm, but one who exaggerates real problems or denies
that there are practical solutions misguides society, and causes
people unnecessary angst. At worst they may trigger what FDR called
"nameless, unreasoning, unjustified terror which paralyzes needed
efforts to convert retreat into advance."
Take the Y2K problem. As I said before, it was quite real. It was a
financial disaster. Society was forced to spend billions of dollars in
emergency repairs that should have been taken care of cheaply during
routing maintenance 20 years earlier.
I disagree. When you talk about "routine maintenance" in this context I
think you are imagining a world that did not exist.
The Y2K problems were entirely, or almost entirely, software problems.
"20 years earlier" than year 2000 was year 1980. Remember what things
were like? A typical personal computer was still an Apple ][ -- the
Lisa (remember the Lisa?) cost about $10,000 IIRC and almost nobody had
even seen one. The Xerox Star was still a new concept. LISP machines
made people gasp when they saw what sorts of things they could do, and
WYSIWYG was a great idea but it required a very fancy screen to do well.
Most programmers were fresh out of college, and a lot of colleges
didn't even offer a software degree yet: you got a math degree or a
double-E degree instead.
Now, what "routine maintenance" was going on in the software world?
Darn little, because almost nothing was "routine" in those days. The
only established software base with anything like a "routine" associated
with it was the IBM mainframe world, where the universe still ran on
COBOL and PL/1. Everything else was barely more than nascent, and
what's more things were changing so fast that almost nobody believed any
software they wrote was still going to be in use in 5 years, let alone
20 years! You plan for things you think may actually happen; the idea
that a piece of code written that year was still going to be in use in
the year 2000 seemed like an obvious absurdity.
Consider what actually happened to a lot of code and systems from that
ear. LISP machines are long gone, the LISA was a dead end (it did _not_
turn into a Macintosh), and that PL/1 code has vanished into the
bit-bucket. Everything on WANG and Interleaf systems turned out to be
not-a-problem in Y2K because the companies had disappeared along with
their Y2K bugs. The BLISS, Macro-10, and RATFOR code that people were
writing did what everyone expected it to do and vanished during the
intervening years. But miraculously some of the COBOL code lived on and
haunted our lives in 2000 ... which was a completely unexpected outcome.
Most of our software today seems to be written in C. Remember C in
1980? 6 character variable names on globals (that's right, just six),
all structure component names came from a COMMON POOL (yes, they did!),
no type-checking on subroutine calls or much of anything else, and BLISS
seemed like reasonable competition for the language. The language was
so feeble that getting a large C program to work _at_ _all_ was a major
challenge in those days; worrying about how well it would work 20 years
later was totally outside the picture.
Asserting that "routine maintenance" of software in 1980 should have
included fixing Y2K problems is a little absurd, I think.
1990 is a different story -- things had changed and settled down a lot,
and in fact some firms were already working on the Y2K issues, because
people were also starting to realize that some programs did have useful
lives of more than ten years.