July 19, 1999
Beyond 2000: Further Troubles Lurk in the Future of Computing
By SARA ROBINSON
hen David Andre noticed that the Windows NT operating system
would not allow him to set the date on the clock of his Toshiba
510CDT laptop past 2079, he performed a dangerous experiment: He
set the time to 11:59 p.m. on Dec. 31, 2079, and let the clock roll
over to 2080.
"It was a big mistake," Andre, a graduate student in computer
science at the University of California at Berkeley, said last
week. "I'm stuck with my laptop in complete failure mode because I
can't get Windows NT to boot. I have to reinstall NT and all of my
software."
Two nuggets of wisdom can be gleaned from Andre's experience:
certainly, that one should exercise caution when toying with the
date settings on computers, but more important, that the
much-vaunted millennium, or Y2K, problem is just the first of what
will prove to be a nasty legacy of time bombs in the computer
industry.
Even scarier, while the time of detonation is known for some of
these bombs, others are deeply imbedded in programs and even
operating systems where they may give no advance warning.
Experts are beginning to voice concern that date-related
computer problems are more pervasive than anyone had realized and
will continue to plague generations of users well past Jan. 1,
2000.
"As long as there's been programming, there have been
date-related issues," said Uche Ogbuji, a consultant and
co-founder of Fourthought LLC. "Y2K has gotten the most attention,
but the rest are not going to disappear."
As with the Year 2000 issue, most date-related problems result
from using a limited number of digits to represent the time and
date on a computer. Eventually, the limit is reached, forcing the
date to wrap around to zero, which, in effect, makes computer
programs suddenly jump backward in time.
"Many parts of operating systems and programs depend on time
advancing forward," said John Kubiatowicz, a professor of computer
science at Berkeley. "These bugs cause time to go backward, which
really screws things up."
The best-known of these problems, named Y2038, affects machines
that run the Unix operating system -- which includes most of the
powerful computers that sort and route packets of data through the
Internet. Unix stores time as the number of seconds elapsed since
Jan. 1, 1970, the beginning of the decade in which it was invented
at Bell Labs. Unfortunately, some Unix-based computers will run out
of space to store these seconds at 3:14:07 a.m. on Jan. 19, 2038.
Why should anyone fret about a problem more than 38 years hence?
First, because seemingly distant dates can have a very near-term
impact. Payments on a 30-year mortgage issued in 2009, for example,
must be calculated beyond the rollover date for Unix machines.
And second, software tends to be stubbornly persistent.
Programmers assumed back in 1970 that by the millennium, the code
they were writing would have been long replaced. But it turns out
that while hardware gets updated regularly, old software often
becomes the foundation on which new programs are built. The Year
2000 problem is with us because layers of software have been laid
down by thousands of programmers over the last 40 years, and the
top layers are almost invariably vulnerable to the vagaries of the
bottom layers -- in this case to a hardware limit that disappeared
decades ago.
Date problems with Microsoft Corp.'s operating systems and
application programs may prove to be more serious than those of
Unix, some experts say. That is because unlike Unix programs, which
all represent time in the same way, Microsoft's programs have been
cobbled together over decades from many sources, and time
representations vary widely. As a result, the Web sites Microsoft
has built to help customers deal with clock-related problems show
program expiration dates ranging from 1999 to "future centuries."
"This is a disaster waiting to happen," Kubiatowicz said of
Microsoft's expiration dates. "Almost every year is a panic year
because something else will expire."
Nor does Microsoft itself appear to be sure what to expect -- or
when to expect it. For example, one of its Web sites originally
listed a 2099 limit for Windows NT -- 20 years beyond the date that
wiped out Andre's machine.
When questioned about many of the product date limits posted on
Microsoft Web sites -- including a 2099 limit for Windows NT -- Don
Jones, who heads the company's Year 2000 compliance effort, said
the warnings were "out of date" and would be removed. And indeed,
several Web sites mentioning date limits disappeared or changed
within 24 hours of the interview.
But when asked what the correct date limits were for Microsoft's
popular Windows 95, Windows 98, and Windows NT operating systems,
Jones said, "To my knowledge, they will work indefinitely."
He said he could not explain Andre's problem. And while it is
true that software embedded in the computer's basic input-output
system, or BIOS, could also be the cause of such a failure, Toshiba
says its laptop runs to 2099 with other operating systems.
Jones did confirm, however, that the Microsoft programming
language Visual C++ measures time as seconds elapsed since Jan. 1,
1900, and will roll over to zero in 2036. Because Visual C++ is
among the most popular languages in use today, many applications
being written throughout the industry today could fail in that
year.
"Almost everyone uses Microsoft programming tools," Andre
said. "While we have 36 years to fix it, it may take us 34 years
to make it a priority."
Some date-related glitches are just careless programming. For
example, leap years occur every fourth year that is not a multiple
of 100 -- unless it is a multiple of 400. Thus, while 1900 was not a
leap year, 2000 is.
"Many programmers forget this," Fourthought's Ogbuji said. "I
myself have made that mistake."
Software with this error may "forget" that Feb. 29, 2000,
exists, causing enormous potential headaches with, for example,
financial software.
Microsoft Excel 97 has the opposite problem: It recognizes 2000
as a leap year, but incorrectly thinks that 1900 was one as well,
causing problems with historical data.
Some of Microsoft's persistent date errors are more laughable
than serious. Through the last three versions of its Outlook
program, Microsoft has calculated the wrong day for Thanksgiving --
and each year a different wrong day. This year the holiday, which
always falls on the fourth Thursday of November, will be celebrated
at Microsoft on Tuesday, Nov. 23.
But other problems are more serious. Kubiatowicz predicts that
software problems dealing with past dates will eventually become
commonplace.
"Computers are still relatively young," he said. "But at some
point they'll be old enough that there will be 100-year-old files
that people care about."
The computer industry is already addressing some long-term
issues. The newest generation of Unix machines, for example, will
not run out of clock space for at least another 200 billion years --
long after the sun has swallowed up the earth.