The Y2K+38 Crisis
In 2038 we’ll likely be weaving tales for our grandkids about how we used to instant message with paper notes instead of our brainwaves and how, when we were really little, stereos were once considered nice furniture pieces. They may be especially interested because, if Richard Wilcox is right, all the really important computers just dialed back to 1901.
Couldn’t say Wilcox didn’t give us ample warning. This link is supposed lead to a post he made in 2003, describing how our 32-bit world is destined to crash on a level a bit more catastrophic than the trumped up worries of December 1999. Unfortunately, due to an unexpected surge from Reddit users recently discovering the post themselves, Earthlink has pulled the plug for exceeding monthly traffic allotment.
Here’s the cached copy.
Impending crises need at least a 30 year run-up—we knew there’d be an energy crisis for at least that long, right?—and it’s not too early to sound the alarms on this one. It may sound unlikely, we’re already Moore’s Law generations past 32-bit systems; just think what we’ll be running three decades.
I generally preferred words to math and programming, so talk of “signed integers” and “time_t” is lost on me, but I did gather from Wilcox’s post that at eight seconds past 3:14 a.m., on January 19, 2038, most computers in the world will think it’s actually a quarter to 9 p.m. on December 13, 1901.
That’s a big, big problem, and apparently a more complicated one than what we faced in 2000.
“So, if all goes normally,” writes Wilcox, “19-January-2038 will suddenly become 13-December-1901 in every time_t across the globe, and every date calculation based on this figure will go haywire. And it gets worse. Most of the support functions that use the time_t data type cannot handle negative time_t values at all. They simply fail and return an error code. Now, most ‘good’ C and C++ programmers know that they are supposed to write their programs in such a way that each function call is checked for an error return, so that the program will still behave nicely even when things don’t go as planned. But all too often, the simple, basic, everyday functions they call will ‘almost never’ return an error code, so an error condition simply isn’t checked for.”
Why won’t we beyond 32 bit by that time? Also included in the original post is an explanation about the expense of building new systems and how computer companies tend to rely on cheap, older technology for building basic new technology. In this case, some technology in use in 2038, might span all the way back to the 1970s.
Hey babe, dust off Dad’s old 8-track so we can share some Earth Wind & Fire magic with the grandkids.