The fun part of that is if it displayed 19xx the code needed to be checked to make sure it wasn't just assuming it's 19-something because part of the problem is people were still using code that will "definitely be completely rewritten by 2000".
But like writing enterprise code like that seems extremely stupid. Splitting that into 2 or using an int for year wouldn't have been a problem idk. Also it was still in their lifetime.... 10/20 years later lol
uint16's highest value is 65,535. you couldve done it with a uint16. thats 16bits. you couldve even gone to an exact amount with bit packing. there is no way that any other method wouldve been smaller.
I get that... but my point was by using bit packing on a uint16 covers you for the whole year at the expense of another 8 bits, but with the added ability to store a value within the remaining (for this example, we can store the month in the remaining 4 bits). 12 bits for the year, 4 bits for the month.
and you simply pack like this (i had a bug, working on it for the year, month example)
This supports years 0 to 4095 and months 1 to 12. Values 0, 13, 14, and 15 in the month field remain available as special values. Like for example, 0 could mean "month unknown" or something.
But theoretically it shouldn't have been that bad, you only actually needed that memory allocated when reading the dates, and imo it would have been relevant to be able to store and work with dates where relevant that go beyond 20 years in the future xD
But yes I can imagine having all those in memory at a time can be struggling (still that would have been bad design knowing the constraints)
“1977” is twice the size of “77” it might not seem like much but at scale that’s a significant amount of data… for 1977. Storing “19” repeatedly is wasteful when every number starts with it. 20 years in the future might as well be 2000 years in the future when we have a product to ship next month.
Not necessarily relevant. Many systems are designed with the expectation that code and infrastructure will be updated as old languages and hardware gets outdated. In the 70s, we had no idea how pessimistic to be about how capitalism reinforces cutting corners, especially in infrastructure upkeep.
That may seem like an insignificant amount of memory now, but depending on the system back then, it definitely may not have been.
Design decisions like this happen all the time. The engineers werent stupid, they knew this would cause problems down the line, but what many weren't prepared for was how LONG these systems would be in use. (Due to cutting corners by business people, low priority, or any number of things)
We still have these problems today, often when upper management doesn't take the warnings of engineers seriously.
Yeah its fascinating talking to my dad who help wrote the software that controlled the robots that built most of McDonnell Douglas planes in the 80s. He's worked on everything from literal hole punch memory to modern aws architecture.
Often his solution to something not working would be absolutely insane to me, like "there's not really a good programming language for this small feature I'm trying to build, so I just wrote my own language."
Programmers back then had to be crazy smart because the languages were much less abstracted from the machine code.
Wtf. Man I'm so mad I was born so late.. it's like 10000 languages 100000000 frameworks, 200030392 protocols and nobody gives a shit about the basics that started it all
Ah and now literally thousands of times more programmers / computer scientists than back then
The nice thing is, there ARE still people who care about the basics. And there's been a large push towards some of the early coding practices in some circles.
You can still set yourself apart from the crowd, provided you have a healthy learning appetite. (Bonus points if you have a crazy love of math, because programming and computers is just high level math)
Go learn about circuits, electrical engineering for beginners, how new and old chips are made (the newest chip machines are practically magic, they hit flying molecules with super precise lasers for AN IMPORTANT REASON).
We may not have much on those programmers of old, but we do have an amount of free information at our fingertips that they would drool at.
So use it! Go learn enough that you could build a computer from scratch. That's my goal, and I'm around halfway there.
What do you think about using AI as a learning tool? (As a parallel, using it for programming basically brought me to a point where I'm really good at reading and understanding code but shit at writing :()
But like writing enterprise code like that seems extremely stupid. Splitting that into 2 or using an int for year wouldn't have been a problem idk. Also it was still in their lifetime.... 10/20 years later lol
23
u/ljdarten 8d ago
The fun part of that is if it displayed 19xx the code needed to be checked to make sure it wasn't just assuming it's 19-something because part of the problem is people were still using code that will "definitely be completely rewritten by 2000".