![]() |
|
#21
|
||||
|
||||
|
I am fairly confident our AS400 system at work will still be in use. Flaming POS that it is.
|
|
#22
|
|||
|
|||
|
Quote:
"Granted, the benefits of more bits is not linear to the number of bits" Just a typo, in case someone wondered if I'd suddenly gone insane. Quote:
Legacy hardware, not likely. 30 year old hardware is a lot. Anyway, this hardware problem can be compensated for in software. Just interpret the dates from 1901 (which it will roll over to) as 2038 dates, and so on. Most likely, this will be done in the BIOS or OS. Remember, software can store dates in a more flexible manner, so it just needs to correctly understand the system clock, then it can store it whatever way it wants. Quote:
|
|
#23
|
||||
|
||||
|
Quote:
Quote:
|
|
#24
|
|||
|
|||
|
Quote:
The 2038 problem only affects how the system clock is translated to a date. As we know when it will roll over, we can adjust accordingly. If the clock tells us 1902, we can easily add logic to tell that it's actually 2039. The system clock is read through API calls in the OS, so it's a single point where the code has to be changed to handle this. Or, in other words: The system clock counts seconds since 1 Jan 1901. Higher up, in the OS or in the BIOS, this second count is translated to a date. Since we know that 1901 is unlikely to happen again, we just start over with a new baseline in 2038 when the counter rolls over to 0. When, say, Excel, wants to calculate the what date it will be in 10000 days, it asks the OS for the current date, which in turn asks the BIOS. When Excel gets an answer, it is in a form that handles dates after 2038, then it adds 10000 days to that, and stores the result, also in a form that understands dates after 2038. The Y2k problem (allegedly) affected software that did not use a full four digit year. In practice, few systems actually cared or just experienced some minor sorting issues. To solve this, software was modified to use four digits. The Y2k38 problem is not in software, software already handles it. Lots of stuff, like loans, insurances and so on already needs to handle those dates, so the software development tools already handle it. It only affect one single point in the computer: how the system clock is translated to a date, and all calls to get the current date go through the same code, so only one place needs to be fixed. |
|
#25
|
|||
|
|||
|
Quote:
|
|
#26
|
||||
|
||||
|
Quote:
One Cobol programmer was so afraid of Y2K program that he froze himself to be thawed somewhere in mid-2000's. So, he finally wakes up, finds himself in a totally futuristic room with a bunch of bald guys clad in metallic clothes. So, he goes: - So, what happened? Did the world end? - No, just your unit malfunctioned and you didn't defreeze properly. Millenia passed. We've moved way beyond your primitive ways of 20th century. We mastered interstellar travel, found the source of everlasting youth and the source of perpetual energy. Perhaps, you will find it hard to fit in here. - So why wake me now? - You see, year 10 000 is approaching and your resume says you know Cobol... |
|
#27
|
|||
|
|||
|
That is really good with the year 10.000.
Truth is, that I am amazed how viral news spreads in this new era of the internet. The 2038 problem is real (as far as some programmer friends of mine told me), but it is impossible in computer age not to solve a problem. I am not sure what will be 2 years from now mainstream on the internet, who knows 20 years from now? |
|
#28
|
||||
|
||||
|
It's the year 292,277,026,596 problem that keeps me up at night. All these programmers will just switch to 64 bit time to fix the 2038, but they're just passing the buck to their great great great great * 10 billion grandchildren who will have to deal with the 64 bit time overflowing.
|
|
#29
|
||||
|
||||
|
Quote:
It's not that simple. It's depends on what language and software you use, but regardless of what kind of processors you're using, the code can still use particular sizes of data. Even on 32 bit processors you can specify a 64 bit data type if you like, and even on 64 bit processors, you can specify a 32 bit data type. Sure if people are all using an appropriate "time" data type, then theoretically they can just change a header file and recompile. But it isn't always the case that people do it right the first time. There are often built in assumptions that break when you change something like that. Java is no exception, although it's perhaps more likely that people stuck to using an appropriate time class with no assumptions about it's size. Assuming not everyone in the world has been appropriately cautious, and it would be a miracle if they were, then there will still be code that needs to be fixed up in order to keep working. And when you get into databases, you have to specify how large you want each field to be, regardless of what hardware you're running it on. Cobol is at heart built around database transactions, and it will have information on fields coded in that aren't as simple to correct as just recompiling or running the program on hardware with larger registers. |
|
#30
|
|||
|
|||
|
Quote:
If they put 2038 their emails will be the first... forever! |
![]() |
| Thread Tools | |
| Display Modes | |
|
|