Programming hints and tips

The World Ends At Midnight, Dec 31, 1999

The year 2000 is approaching, and companies are finally realizing that dates may have more than 2 digits. This problem was first noticed at least 20 years ago, but conventional wisdom said that none of the programs in use then would still be in use by the end of the millennium. So nobody fixed them, and only recently have people started writing programs which consider what will happen at the year 2000.

Better late than never? Some analysts say no. They claim that the Year 2000 Problem will be the end of computing as we know it. Some seem to be claiming that all computers will stop working at midnight, December 31, 1999. While there is a significant problem coming, I think some of these consultants, whose work consists of trying to fix the year 2000 problem, may be overstating the case, and the media seems to love it.

Are you at risk? Maybe, maybe not. You can find out easily enough. On your home PC, try setting the date ahead to December 31, 1999, and the time to a few minutes before midnight. Watch what happens as the millennium turns. My experience has been that the computer keeps working, and most of the software I use regularly keeps working. That's simply because most software doesn't care about the date. Chances are your computer, your web browser, and most of your usual tools will keep working with no noticeable problems.

The programs which are most likely to have trouble are your financial programs (bookkeeping, taxes) and databases, and many of these are unlikely to have problems if they are new enough releases. You can easily check them by pushing the date forward, and, if they experience problems, contact the publisher about getting an upgrade before midnight arrives.

The real problem with the year 2000 is not in home computers, which are almost all quite new, but in corporate computers, which are, on the average, much older. Many of the programs which are in use today for the banking and financial services industry were originally written twenty years ago, and while they have been continuously upgraded, they have never been completely replaced.

This means that there are hundreds of thousands of lines of code, written in older (currently less popular) languages, which may assume that dates only have 2 digits. In addition, the databases created by these programs may only allow space for 2 digits in the date.

To completely solve the Year 2000 Problem, every one of these assumptions has to be found and fixed, and every database containing 2 digit dates has to be upgraded without losing any data and without interrupting service. Since much of the problem is in older code, most of the original programmers have retired. The current core of programmers are more familiar with modern languages and techniques, and may have a lot of trouble understanding the intentions of the original programmers. And unless every place is fixed, there is still the potential for the problem showing up.

How bad is it? Realistically, the banks will not collapse, society as we know it will not come to a standstill, and the ants will not take over the world. If the problem is not completely solved by the turn of the century, then the next century will probably begin with many angry customers calling many beleagured companies and demanding that people, not computers, straighten out the problems as they are found. The real cost will be in the effort it will take each of us to sort out the damage as it occurs, and the damage which will occur to the reputations of the companies which failed to fix the problem.

But if there's such a problem, why not simply replace all the existing systems with new systems? It's a fair question. The key here is to understand that we are talking about systems which have evolved over the last twenty years. They are not extremely well documented; nobody seems to know exactly how they work. That means it is difficult to "simply replace them". Another problem is that customers don't want things to change. They are used to the service they were getting, and will be upset if everything is suddenly different.

Consider bank machines. This was a case of the banks trying to completely change the way we do banking. If they had used the "simply replace them" philosophy that some people are advocating to solve the Year 2000 problem, they would have installed bank machines and closed the branches. The problem is that any bank that tried would lose all their customers. Even now, there are very large numbers of people who prefer not to use bank machines, and the banks must allow them to keep banking the way they have for years.

So, the real problem with the year 2000 is that we must enter the new millennium using software written twenty years ago. We should all be prepared for the problems which will arise, but we should also keep calm, and not panic over what may happen. Your computer will still be here on the morning after!

Want to:
Read more from the soapbox
- Read Awk Words.
- Look at my AWK scripts.
- Read Robert's Rules Of Coding.
- Go back to the front gate.
- Visit another wagon.

Whenever you find yourself at the bottom of a deep hole, the first thing you should do is stop digging.
Page maintained by Rob.