Happy 25th, Y2K!

Somebody mentioned the 25th anniversary of the Y2K mess. The problem was genuine but somewhat limited. Media panicators and provocateurs turned it into a full nuclear catastrophe. Provocateurs on the fake opposite side insisted it was much ado over nothing.

The reality was a LOT of hard work by real programmers to avoid a serious problem with SOME important computers, especially in banking and finance where mortgages and insurance policies could become unenforceable with “time-machine” situations. A mortgage might try to charge negative interest, which could generate a payment instead of a bill. A futures contract due in 2002 would become due in 1902.

Mainframes could handle large numbers in their adding and subtracting mechanisms. For instance the IBM 650 (introduced in 1957) handled 10-digit decimal numbers, so a 4-digit date would be easy. But the programming languages and many of the actual programs took a shortcut to fit 80-column punch cards. One card might hold a transaction number, date, customer name, model number of purchased item, and price. Every digit was precious.

Everybody got into the act. I was writing commercially published courseware in C++ for Windows. Windows has four-digit dates, but some programmers continued the old habit of using only the last two digits. The publisher required me to check all dates and times in my program and report them officially. Courseware records grades, so the program did write dates and times. All were 4-digit, no problem.

I had to print out the entire source code on paper and send a form with my notarized signature guaranteeing correctness. The printout was a 50-pound box of folded dot-matrix paper.

Yes, Y2K was serious, but not an asteroid striking the earth.

Older Windows programs will get their chance to fail in 2038, when the 32-bit integer used as the base of time calculations will roll over to zero. Newer compilations generally use a 64-bit integer, but I’m pretty sure my program was compiled using the older standard. Fortunately my Windows program was no longer sold after the courseware switched to online form in 2014.

= = = = =

Random semi-related thought. In the previous two centuries we habitually used only two digits in conversation. The 90s, the 20s, the 60s. This year was ’95 or ’28 or ’62. Now we’re a quarter of the way through this century and we STILL aren’t calling this decade the ’20s or calling this year ’25. The missing words made sense in the first decade because there isn’t a natural group term for numbers under 10. Oughts isn’t natural. The lack no longer makes sense.

What’s the 64-bit equivalent? Maybe a form seen in old legal documents, The Twelfth Day of October In The Year Of Our Lord One Thousand Four Hundred and Ninety-Two.