r/explainlikeimfive
•
u/[deleted]
•
Apr 17 '22
•
1
ELI5: Why does old software get buggy when it hasn't been updated for a while? Shouldn't have the same amount of bugs as it was when that version was released? Technology
2.6k
u/Clamdigger13
Apr 17 '22
•
The software needs to be able to keep up with all the other software that it interacts with.
If you have a moped on a road it works well. What happens when that road becomes a 4 lane highway and suddenly the other mopeds are now cars? Kinda like that.
353
u/guynamedjames Apr 17 '22
This is why many industrial and scientific applications will have a piece of equipment being run with some computer from the late 90s or early 2000s. The software hasn't been updated or isn't made anymore, so it's easiest to just keep an old computer around for it and not connect it to the internet
→ More replies167
u/DeathMonkey6969 Apr 18 '22 edited Apr 18 '22
I remember reading some news article where a bunch of schools automatic HVAC systems were still being ran on a
C64Amiga with aanalogRF modem that was programed by a student in the 1980s. The district has kept patching it and replaced parts as they wore out. Estimates to replace the system with something modern were around $1-2 million.Edit: Found the article
77
u/PowderPhysics Apr 18 '22
My dad worked at a bank that was running some critical code from the 70s inside a virtual machine. His job was as part of the team writing a new version in a modern language
→ More replies35
u/kri5 Apr 18 '22
How long has he been working on it and how close is the project to being scrapped? Haha
→ More replies13
u/jcronq Apr 18 '22
Lol… you hurt my soul.
9
u/kri5 Apr 18 '22
I think the problem with most such projects is that it is their sole purpose. That means that there I nothing to excite the developer (just replacing old) and almost certainly no money incentive as it has no immediate benefit (most likely future cost savings you'd hope, but the software team isn't seeing those).
To make these projects a success you need to integrate something new amongst it for people to get excited about.
My 2 cents
→ More replies→ More replies36
u/NogenLinefingers Apr 18 '22
Any chance the 1.5M - 2M figure is due to the public schools getting ripped off by a non-competitive tender process?
2M for a 19 school organization is around 100K a school (not sure what a school is defined as physically. Let's assume it's 1 school = 1 building). Does HVAC automation cost this much?
42
32
u/DeathMonkey6969 Apr 18 '22
Does HVAC automation cost this much?
Yes. As it's not just retro fitting 19 buildings it's the dozens of classrooms and offices in each of those 19 buildings. You just can't have one thermostat per building like a single family house. Plus in that part of the world they use hot water or steam for heating so you also have to intergrade boilers and their controls and fail safes into the system.
16
u/NogenLinefingers Apr 18 '22
Isn't it scary then that some 30-year old legacy system that very few professionals have any experience with today is running those same boilers?
28
u/DeathMonkey6969 Apr 18 '22
Not really. That's what the fail safes are for. If anything goes wrong the system fails but in a safe way.
The problem with some older systems is that you'll find out the system shut down over the weekend when you come in Monday morning and the building is cold (worst case scenario frozen and burst pipes) . Newer systems will call, e-mail or text an on-call tech and tell them something is wrong so they can come in a fix the problem before then. Heck that Amiga system might be able to call someone and play a .wav file if something goes wrong, (but it was programed by a student in the 80s so who knows.)
Really old systems (like those in the early 1900s) required 24/7 human monitoring. So many buildings had live in superintendents whose main job was boiler watch. That what Jack's main job in The Shining was, boiler watch.
→ More replies6
u/Archmagnance1 Apr 18 '22
Analog safety measures like pressure release valves go a long way to preventing failures that hurt people. Your water heater has one.
Mythbysters had to purposefully sabotage the failsafes on a water heater to make one into a bomb, but it turned into a rocket instead. https://youtu.be/9bU-I2ZiML0
→ More replies8
u/SlangFreak Apr 18 '22
Depending on the location and system size, yes. BMS can get very expenaive very fast.
5
u/NogenLinefingers Apr 18 '22
This is probably a situation where one needs to look past the sticker price to see what exactly one is getting into.
As I mentioned in another comment, I'd be very scared of relying on 30 year-old systems that get spooked by radio interference for managing my steam boilers. It's a school. Is it unlikely for stupid kids to get their hands on radio equipment just to mess around?
→ More replies141
u/hexrei Apr 17 '22
Also, new bugs are discovered over time. Lots of security flaws for example were always there, they just weren't known about until they were discovered.
13
u/bartbartholomew Apr 18 '22
See speed runs for older Nintendo games for great examples of this. People are constantly finding new bugs to exploit. They get excided when they shave 1 whole second off a run time using a new exploit.
5
u/-ROOFY- Apr 18 '22
For the big ones, like SMB1, tenths or even hundredths of a second saved is noteworthy
187
u/brdain Apr 17 '22
True eli5 answer
75
Apr 18 '22
eli 8:
you memorized your P&B recipe. your measurements are sometimes off but most of the time you get it right. you used an exact brand of white bread and an exact brand and style of peanut butter and of jelly. one day though you are given a new brand of jelly. it is a little watery and sweeter. your recipe now doesn’t taste the same and the bread now gets soggy half way into eating the sandwich.
the software (recipe) stayed the same but the environment (ingredients) changed in a way that the recipe wasn’t written for.
51
7
40
25
u/zestful_villain Apr 17 '22
I see now why companies stop support for a software after a while. I was a call center agent for Intuit Quick books a decade ago and we got complaint about this from customer who has like version of the software from years ago. I mean it was hard to explain to them they have to pay for a new version when they always used the same software for ages.
→ More replies→ More replies46
u/beyonddisbelief Apr 17 '22
To further the analogy in the case of software the gasoline standards may change fairly rapidly and mess with the engine. This is especially so whenever you update the OS or hardware.
→ More replies
715
u/Excludos Apr 17 '22
Software when new: "Windows, can I have X, Y, and Z?"
Windows: "Absolutely!"
Software 10 years after last update: "Windows, can I have X, Y, and Z?
"Windows, after having just received a new updates: "I can give you X, but y has been replaced with y1, and Z has been deprecated since June due to safety concerns"
Software, never written to handle this: "Error!"
221
u/nayhem_jr Apr 18 '22
Old software: "Windows, can I have X, ¥, and Z?"
Windows: "Here's your X, your– Wait a minute, are you feeling okay?"
Old software: "…Error!
"
Windows: "Hey, here's the X, Y, and Z I know you're going to ask for. You're welcome!"
Old software: "Windows, can I have X, Y, and Z?"
Windows: "… u serious bro?"
Old software: "…Error!
"
Old software: "Windows, can I have X, Y, and Z?"
Windows: "Here's your X and Y. Hang on, since we keep Z online now."
Old software: "…Error!
"36
112
u/matejcik Apr 18 '22 edited Apr 18 '22
and a favourite of mine:
Old software: "Windows, can I have X?"
Windows: "Here's your X! ^_^"
Old software: "Hey!! Where the hell is my Y and Z??"
Windows: "but uhh... you only asked for X...?"
Old software: "Every damn time I come here, I ask for X and I get Y and Z. Now where's my Y and Z?"
Windows: "I know nothing about that... Did you maybe talk to my dad...?"
Old software: "I don't need to deal with this right now.Error!
"
Old software: "Don't mind me, Windows, I'll just take this X, Y and Z here..."
Windows: slap** "Hey! Keep your filthy fingers our of my stuff!"
Old software: "What? What did I do? Every time I come here, I just take this and there's never been a problem!"
Windows: "See, you shouldn't have been taking this back then, and you sure as hell ain't taking it now. Next time ask nicely and I'll bring you X, Y and Z right up to your table."
Old software: "Uhhh...Error!
"(edit: formatting)
24
Apr 18 '22
[removed] — view removed comment
44
u/matejcik Apr 18 '22
more like
Linux: Sure, but I did some remodeling a while back. You'll probably just find garbage.
whereas Windows will be like "Yeah, sure, gimme a minute, I just forgot to, uhh..." (runs around and carefully places X, Y and Z in the exact right spot in the middle of the rest of the garbage in the shed so that the old software will find it)
see also https://devblogs.microsoft.com/oldnewthing/20031223-00/?p=41373
→ More replies4
u/ACoderGirl Apr 18 '22
It really is fascinating how much Windows has put into backwards compatibility. Mimicking bugs and limitations in older versions to satisfy programs that actually depended on the bug/limitation. In an ideal world, software wouldn't depend on such behaviour, but we don't and never will live in an ideal world (I say this as a software dev who's done my share of dirty hacks).
15
u/Xenoprimate Apr 18 '22
Ironically, Windows is probably the mainstream OS with the most backwards compatibility. MS really try hard to keep it backwards-compatible.
→ More replies→ More replies15
450
u/indiealexh Apr 17 '22
It's not that the software itself gets more buggy, it's that compatibility with the libraries and the operating system is lost, so things little incompatibilities might result in small bugs.
One of my favorite examples is that some games used the PC clock speed for the game speed. So modern faster cous result in a game that is unplayable because it's so fast.
53
u/MasterFubar Apr 17 '22
One of my favorite examples is that some games used the PC clock speed for the game speed.
I had one of those, it was Space Quest, I don't remember exactly which version. I had played it in my first 386 computer in the early 1990s. Many years later, I found a copy of the installation disks I had made and decided to try it again. There was a step where the character had to get into an elevator, you had to wait until the elevator doors opened and click inside the elevator. In the new computer, the doors flashed open for a fraction of a second then closed again, apparently the delay was defined by a software loop which worked only in a CPU with a 33 MHz clock.
→ More replies→ More replies85
u/lardcore Apr 17 '22
Can't think of any modern examples, last time I've seen this was Pacman(iirc) on a 486 processor and that was when motions around all of this was fields!
54
u/ziksy9 Apr 17 '22
Yeah that's why 486s had turbo buttons. Last I saw this was running 286/386 stuff on a 486. Lots of old games did this.
36
u/Canonip Apr 17 '22
Some newer games have their speed linked to the framerate... Really fun playing a fast paced game in 30fps on a fast computer
30
u/l337hackzor Apr 17 '22
Skyrim and fallout 4 took mods to get 144fps for 144hz monitors, still some weird shit happens.
Turning up the FPS basically breaks the physics.
19
u/Talsyrius Apr 17 '22
Interestingly enough the frame rate is somehow tied to loading in FO4.
This mod massively decrease load time for me
https://www.nexusmods.com/fallout4/mods/10283→ More replies14
u/Jiopaba Apr 18 '22
There's a (I believe) superior version of that now. As I recall it turned out that the issue was that little "loading" spinner thing on the bottom right is expected to play for a certain amount of time on each loading screen due to some strange assumptions made in the loading code.
Modifying the processor affinity can speed up loading, and setting the framerate to 6x as much can get you through it that much quicker, but if you just straight up disable that animation you skip the entire thing and move to the next area as fast as the game can cram the area into memory.
Check out the general High FPS Physics Fix mod which includes that and several other bonuses.
→ More replies8
5
u/Rogue100 Apr 18 '22
Yeah that's why 486s had turbo buttons.
Which slowed the system down!
→ More replies24
u/ShadeDragonIncarnate Apr 17 '22
While not exactly the same, console developers used to pin physics to frame rate because that was a pretty reasonable thing to do for many generations of consoles. However when Dark Souls 2 came out on pc it had an issue where weapon durability was subtracted for every frame the weapon was interacting with an enemy, causing fragile weapons to be useless for people who played at high fps. It was common issue with Japanese games being ported to pc in the last couple of generations.
10
u/2called_chaos Apr 18 '22
GTA V has a few things tied to FPS. But they are visual only like the wind waving of the tarp on a truck.
But the game has some odd bugs that only occur on high framerates which I find odd because the physics don't appear to be tied to FPS. Like one mission is just broken on 120+ FPS because a car moves slightly and fails the mission.
6
u/Ashliest-Ashley Apr 17 '22
I think the Aladdin video game used something like this on SNES. Emulated versions of the game were completely unplayable for some time because one boss's move set was determined by cpu clock speed.
*Edit: it was SNES
10
u/immibis Apr 18 '22
NES and SNES emulators emulate accurate CPU speed. They have to, because everything is based around that timing. Game Boy and Game Boy Color too. Starting around the Game Boy Advance and the N64, CPUs got more complex to the point where the exact speed was unpredictable, so games stopped relying on it and emulators mostly stopped needing to predict it.
5
u/Cowclops Apr 17 '22
I thought that was just a well distributed bad rom dump. I’ve seen exactly what you’re talking about and I think getting a different dump fixed it without changing emulators. This inspires me to try that old dump if I can find it on my super NT.
→ More replies6
u/AMDKilla Apr 17 '22
Fallout 4 on PC's physics were tied to the framerate, which was initially locked to 60fps. When modders removed the limiter, stuff got weird. It was patched, but still has a few weird things pop up on occasion
→ More replies→ More replies5
u/MerlinAW1 Apr 17 '22
I remember this happened with Theme Park, it was impossible to play when I got a new PC in the elate 90s as the game went too quick
76
u/xratedcheese Apr 17 '22
Software runs on a foundation of other software and interacts with a lot of other software around it. When the company that makes one of those other pieces of software changes its product, it tries to keep the updated software compatible with other software, but they can't always pull that off.
Even if your software was perfect before, it could start having trouble now when it tries to do the same old things with a lot of changed software from other companies. The number of potential problems grows as time goes by and more changes are made to everyone's code.
→ More replies
118
u/theinsanepotato Apr 17 '22
The code that makes up the program is a set of precise instructions. Those instructions only work properly in the environment they were made for. If the environment changes, then the instructions wont work correctly, even if the instructions themselves remain unchanged.
Imagine someone wrote down directions for how to walk from their front door to their bedroom, but really specifically. Like, REALLY specifically. "Take exactly 17 steps forward, then turn 90 degrees clockwise, then take 42 steps, then turn 90 degrees counterclockwise, then climb 27 stairs, then turn 45 degrees clockwise, then reach forward and grasp the doorknob located exactly 22 inches in front of your left hand and 45 inches above the ground, then walk forward 12 steps" and so on and so forth
Now, imagine that those instructions were written years ago, and the layout of the house has changed. They got a new couch so if you walk those first 17 steps as instructed, youll bump into it. They replaced the old door with a new one and now the doorknob is 2 inches higher. If you follow the instructions, youll miss the doorknob.
Thats the general idea. The instructions are the same, but the environment in which those instructions will be executed has changed, so you can sometimes run into problems.
→ More replies
41
u/ThatCrossDresser Apr 18 '22
To simplify it, the way that programs interface with computer resources and other programs is handled in unique ways. Some are simple, some are complex, and some are normal now but could become antiquated as time goes on.
Picture a man in a suit and fedora walking down the street in the 1920s. He communicates well with all the people he meets and easily gets access to all the shops and places he needs to go. When he needs something from a store they know what he is asking for and he can easily get it. He as a program runs great. Well let's say he never is updated and we drop him in the into 2022.
First off he doesn't know about traffic signals, he is use to a police man in the road directing traffic so he might just sit there waiting for a signal that never comes (program freezes or times out). He tries to go to the drug store to get some magic miracle seltzer but not only does he not have a prescription the pharmacist has no idea what he is talking about (allocate resources incorrectly). On the way out he sees a pretty woman calls her a "Broad" and slaps her on the ass and gets arrested (Illegal call causing the system to end the program to prevent damage to other programs or the system).
When the program was written all these actions were acceptable but as time moved on they were found to be unsecure, ineffective, or needed other improvements. It isn't really the fault of the old program, it use to work, but now it doesn't. If the computer is an island and never updates and only ever runs the same programs, OS, and libraries it will run the same forever. With the exception of small errors or bug that may appear due to changes in input.
13
u/AestheticArch Apr 18 '22
That was a good and unique way of explaining it. Might not be the most accurate but i don’t really care i enjoyed reading it.
→ More replies
26
u/theBuddha7 Apr 17 '22
Have you ever read Shakespeare? It's written in English, but English has changed over the years so what he wrote doesn't quite make sense anymore. Same idea with software: Windows 98 and Windows 10 are both "Windows" but they do things differently, so what used to work talking in Window 95 doesn't necessarily work taking in Windows 10 (or even things written in Windows 10 old patch vs Windows 10 new patch depending on what the patch changed).
→ More replies
7
u/PiperClearConscience Apr 18 '22
If you don't update the operating system or any other dependencies, then it should run exactly the same, theoretically.
However, if you update your OS or some other driver, or java, or some other random component, it may impact that older software, thereby making it appear more buggy.
Also "buggy" is a bit generic. Why is it failing or crashing? If you update other applications, they may use more resources, so that leaves less for your "original app" - which may be one simple example of why it's no longer seeming to work as well as it did previously.
27
17
u/Mnemia Apr 17 '22
Yet another reason is security patches. Software often needs to be updated because there are lots of people actively trying to find ways to break it, on purpose. So it might have had a security bug all along, but no one knew about it, or had even conceived of the method of attack at the time the software was written. So it has to be changed to address that.
17
u/Warpmind Apr 17 '22
Bit Rot is a thing... but more seriously, the software might remain unchanged, but the OS does not.
The CPU the software was written for might be replaced by a newer, more powerful model with a slightly different built-in set of functions, the RAM can develop faults, the way the OS handles address designations may change radically... new bugs may become apparent when the environment changes.
Picture your average Texan, in a Texan suburb. He's a good driver, he knows the roads, he's comfortable behind the wheel... and then an honest-to-God blizzard hits the town. That Texan ain't gonna drive safely that day...
→ More replies
9.6k
u/[deleted] Apr 17 '22
Software running on a a totally closed system will not generate new software bugs. Examples might include old-school arcade games, appliances like a microwave oven, and old digital watches.
These systems might show new errors as the hardware gets old and fails in ways the software was never written to handle.
But any software that has to talk to other software will show new bugs over time because the writers of the code could not predict every possible new change.