A freight train size disaster is racing down the track of our daily calendars, but no warning messages will be popping up on your computer screens. It will strike as the calendar is turning over on your computers from December 31st, 1999 to Jan 1, 1900!
Yes that's right, 1900. And you all thought we are going into the 21st century. It is ironic that one of the defining inventions of the 20th century should cause us so much consternation as we turn the corner into the 21st century, but for many of us the programs on which we build our business existence will suddenly and without warning be printing and accounting for wrong dates!
Think of the tax and legal complications, think of the customer relations headaches and think of the cost to reprogram programs that are hard coded in a way that makes them very difficult to fix. How did we get into this mess, and how did the fact that this problem was coming fail to reach the attention of management for so long?
For a very long time the biggest cost in hardware for computers was memory. It is hard for us to realize that now we can buy 4 million bytes of memory for just over $100, but 4K of memory in the 1960s cost close to $100,000. Since memory was in the 50s and 60s such a precious resource, some computers of the day had less than 1,000 bytes of memory to work with, the programs written for these machines considered each byte as precious.
Now the programmers of those early machines found that they could code date information in only 6 bytes if they used two each for the date, month and year. However with only 2 bytes, the year has to be represented as "96" for our current year. Consequently the programs themselves supplied the "19" in front of the "96" as a hard coded item.
What hard coding means is that the program tracks no variable for the century, just the year in the century. From our prospective now the idea that using 6 bytes instead of 8 for the date was any kind of savings, but it frequently meant the difference of making the program work or not in those early machines. It truly made a difference then.
But what about now? Haven't we already solved this problem? After all a screen saver program these days can run a million bytes or more and a word-processor program can top 35 megs. Shouldn't it be a simple thing to fix? The answer, like so many, is yes and no. Here is the problem, left over from the precious memory legacy. Computer programs are very expensive to write, and tend to evolve based on the earlier work of others. We don't write much low level code anymore, but base our code on work on the past, much of which is "cursed" with the six byte rule for dates. The curse stems from saving those 2 bytes, and setting into motion that dates are done in 6 bytes. Once the precedent is set, the rule stays in effect for years, simply so all our programs can be backward compatible.
After all, we want to make sure we can get to that old data! So program designers until the mid 80s thought, "Well, this program will be replaced in the next 15 years," so it is no problem to hard code that "19" date. About 1986 some of the industry started to wake up to the problem, one fix that was applied was to say if the year was from 51-99 put a 19 in front of the year, and if from 00-50 put a 20 in front. This "fix" (actually a "bug" in my opinion) buys some programs another 50 years service, and, in fact, is hard coded into the hardware of some computers!
So your risk of getting hit by this "freight train" is much larger if you had your programs written prior to 1985 and less if written later, but the plain fact is you don't know unless you test the situation, what is going to happen. So here is a recommendation to management: Schedule a test (with full backups) of what will happen to you when you hit the date in question. In effect, set your clocks ahead a few years let the date roll over and see what happens.
It will be much better to put a solution into your planning before it happens rather than when it happens. This is particularly true for the U.S. Government. Hard as it is to believe our government is still running computers (and computer programs) based on vacuum tube technology. Amazing as it is to consider, we don't even make the tubes anymore, we have to buy replacements from former Soviet republics.
Just remember we told you with almost 4 years to spare. Test your systems, or have them tested; the cost will be much less than getting hit with your accounting system down, just when you thought you were going to celebrate the next centuries start. By the way the next century really starts a year later, but that is another story.
If you would like to have computer questions answered, please send them to me by e-mail at Kansas City Mail Online or by the Internet: graeme@kcmo.com. The e-mail impaired can reach me by fax at 816-252-5545 or phone at 816-252-4080.
Graeme Gibson, C.D.P. is the president of Computer Training Corporation and Kansas City Mail Online. A former NASA programmer, he has worked in the computer field since 1972. His weekly TV show Computers Today is distributed locally by American Cablevision and Tele-Cable.
copyright Graeme Gibson, C.D.P. 1996
copyright Graeme Gibson, C.D.P. 1996
InfoZine | U.S.A. Stores Mall | Computers Today