Almost a decade after the Year 2000 Problem, in which two-character date fields threatened the existence of the human race, the computing industry is once again back to worrying about Windows upgrades, Mac one-upmanship, processor numbers, bloated Adobe updates, and the latest MMORPG expansion.
Despite the ease with which software makers updated their date fields and the general tenor of calm today, things are not nearly as stable as one might think they are. Another pitfall lurks around the corner, this time based on the proliferation of GNU/Linux, a free operating system programmed by a worldwide collective of hackers.
The Year 2000 debacle started in the mid-Nineties, when the public became aware that decades of lazy programming was about to cause systems worldwide to behave erratically, if not explode altogether. And it all had to do with antiquated date storage methods inherited from the earliest computer systems.
Date values were usually stored in databases as a two-digit value that assumed the twentieth century. For instance, 1999 would be stored as 99. 2009, however, would be stored as 09, with an assumption of 1909, a full century off.
To remedy this most software makers simply recoded their programs to require the century explicitly, storing a full 1999 or 2009. Operating system makers had a bit harder of a time, in particular Microsoft, whose Windows operating systems stored the date in a manner that broke other software profoundly. Everyone muddled through and even COBOL programmers worked out most of the kinks before January 1, 2000.
Unix coders laughed the whole time. Unix systems had stored date values as a 32-bit unsigned value and therefore were immune to the Y2K bug. In fact, most Unices were good until 2038, which was bandied about as the “Year 2038 Problem" at the turn of the century but unnecessarily so. Most Unices are 64-bit today and store their dates as 64-bit unsigned values, good to around 4076000 CE. But therein lies the rub: that's just most Unices and not GNU/Linux.
Since GNU/Linux is coded by hackers from around the world leeching off their parent's broadband connection without concern for real-world application of their efforts, copying Unix internals exactly was never high on their priority list. After coasting through the Y2K problem, GNU/Linux concentrated on adding superfluous things like experimental USB 3 drivers, no less than three new virtual memory schemes, and a file system developed by a murderer.
GNU/Linux programmers failed to include a proper 32-bit unsigned date value, using several bits to spell LNUX in ASCII for anyone interested in looking. Their obsession with new tech and general lack of professionalism also led them to forego widening the date value to 64-bits. Instead of sputtering out in 2038, they've shortened the lifespan of GNU/Linux to December 31, 2011 at 23:59 hours: the Year 2012 Problem.
What does this mean for the world? One might ask the Maya, since their vision of 2012 is pretty close to what we're all heading toward. Today, GNU/Linux runs on everything from microcontrollers to mainframes, meaning mundane but important things like applying the brakes in a car or aiming nuclear warheads will come to a profound and screaming halt.
Imagine your coffee maker failing to turn on in the morning, then trying the news and seeing that your DVR can't process video. Calling the cable company is a waste of time, since your phone system's switches are run by GNU/Linux. Fed up and out of time, you head to work only to discover your gas mileage sucks and power steering and braking are an unexpected morning workout since your car is running GNU/Linux too. Once parked, you can't enter your workplace because the security system has shit the bed.
Using your mobile phone doesn't work since your tower is now just an inert mass of metal. Even if you could access the Internet—the parts not running GNU/Linux—you'd find email down as well as your bank account inaccessible. At best, your money might be frozen at 23:59 yesterday evening. And this is just your mundane, everyday, civilian life. This says nothing about the millions of tons of chemicals, weapons, and humans involved in heavy industry and military concerns.
This isn't to say that the Maya had any sort of mystical powers or knew what GNU/Linux was. But imagine that the Maya did have some kind of understanding about human nature and its ability to usurp its environment before tumbling out of control. After all, they experienced the same exact thing when their civilization collapsed due to transient populations, over-farming, and poorly-managed competition for limited resources: one dry-spell was all it took.
What is clear is that, had the Maya known about GNU/Linux, they would have avoided using it. In fact, one can find many Maya today that have never used GNU/Linux in their lives Coincidence? Probably. But portentous? Certainly. Instead of fiddling with the latest GNU/Linux distribution and its myriad of sloppily-coded bloatware, the Maya will, for the most part, continue lugging maize on their backs while the 747 your wife is on spirals into the ocean and our economic infrastructure crashes back into the Stone Age.
So what to do? Imploring GNU/Linux developers to get their priorities straight seems sensible until you realize demanding anything from teenagers and Communists is at best an exercise in frustration. The mindless line of GNU/Linux upgrades serve only to tweak some marginal software package or another. And asking the companies that use GNU/Linux to fix the problem won't work either: despite being "Open Source," the companies are too busy getting fat off of uninformed customers to care. If only they understood!
So in the end, we must all stop using GNU/Linux. The People's Republic of China recently announced its switch to GNU/Linux; they should switch back to whatever they were using before. IBM and its ilk must kick their addiction to huge profit margins and look seriously at something else more professional. Hobbyists and programmers should pick up another operating system to hack on that has credible standards. Mac OS X is available and doesn't suffer from the professional and technical bankruptcy that GNU/Linux does.
One thing remains clear: without moving away from GNU/Linux now, we are all doomed like the Mayans said we were. Humanity will cease to exist on January 1, 2012, in a 24-hour rolling nightmare the likes of which we have never seen before. Kick GNU/Linux to the curb and start using real operating systems. Otherwise, there will be one hell of a long line into Heaven on New Year's Day 2012—with Linux to blame.