This is not a software glitch, it's the Y1C problem: old mainframes were so storage-constrained that they only allocated two decimal digits for passenger age, and adding another digit would mean rewriting software that in some cases has been in use and constantly patched since the late 1950s. https://press.coop/@BBCNews/112345996328670433
@cstross Shaken by the sudden realization that a generation of programmers grew up post-y2k, rather than entering the workforce right in the middle of the mad scramble
@ovid@DanielEriksson@cstross Post-y2k I worked on grocery industry infrastructure — price and inventory stuff that was also running mostly on mainframes. Years got fixed, but similar mistakes happened all over the place. In one example, software had been built with a fixed 4-digit price field. Had been fine for decades, but inflation did its work and one product — the most expensive champagne the store’s liquor department carried — tipped over the limit.
My favorite bit? In 2000, I was trying to fix a COBOL program which included the comment "Converted from punch cards in 1968." I was born in '67, so I'm sure it was written before I was born, yet it was mission-critical software for that company.
I was in my 30s at the time, which would have made me one of the older devs in many companies, but for COBOL I was the youngest. They were confused when I complained about the use of GOTO for all flow control ...
@cstross As an ex-COBOL programmer who was knee-deep in the Y2K mess, one of the issues is that many of those old COBOL programs were compiled, but the source code was lost.
In some cases, corporations were worried COBOL vendors would disappear, so they created incompatible, in-house COBOL compilers, making the mess even worse!
Naturally, there were no tests to verify that the software functioned correctly ...
@ovid@DanielEriksson@cstross I got the panicked call on NYE — bottles were ringing up at $15 instead of $115 at the register, and… as it turns out that causes some problems…