Perl and the Y2k problem - page 2

Doomsayers everywhere

October 20, 1999

By
Tom Christiansen

Three commonly repeated lies exacerbate
the situation.

The first lie routinely recounted is that the
Y2K problem historically derived from expensive
computers of yesteryear whose memory was so
dear that programmers maintained dates in a
two-digit format to keep costs under control.

This assertion is demonstrably false. Think
about it. A two-digit number requires how much
storage? Two bytes, that is, sixteen bits? No,
much less: numeric data are seldom stored in
text format, since a more compact representation
is readily available. A two-digit year would
be a number ranging between 00 and 99. That
can be represented in just 7 bits.

What about using full years, like 1985 or
2010? Those numbers could be represented in just
11 bits. So did those veteran programmers of old
truly gleefully rack up dramatic cost savings
at the rate of 4 entire bits per date? Surely
this tremendously precious hardware could have
spared 4 bits! And even if not, one could
have employed an offset from a reasonable base
instead. If instead of using just the last
two digits, years in dates could have been
represented not as absolute values but rather
as the number of years since 1900. If so, this
too would still fit in those aforementioned 7
bits, at least for a while. Add another bit, and
we're clear until 2156. End of problem. Saving
memory was not why it was done.

Although the users of that day may have chosen a
non-extensible representation for their years,
one that was year % 1900 rather than
year - 1900, that doesn't make it a hardware cost
issue. It was still a short-sighted, soft
design mistake.

The second lie is that this phenomenon is
somehow brand new, that in the year 2000, myriad
systems will suddenly fail, and that this kind
of thing has never occurred before. Think about
the ancient pensioner born in 1895. A program
that reads their birthday as ``95'' will not
pay them their months checks, since in 1998,
they appear to be only three years old. The
year 2000 has not occurred in this equation. The
so-called ``year-2000'' problem is in
no fashion new, nor is it limited to that
year. It will simply be more evident then.

The third, and by far the gravest lie about
Y2K matters, is that your company can, through
the acquisition of affidavits of compliance,
protect itself against harm, whether real
or litigated. It can't. This faith in legal
documents is hollow and in fact dangerous. The
wisest course of action is for you to
immediately disabuse yourself of this deceit.