February 19, 2019

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.

Most Popular LinuxPlanet Stories