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?

Read the Story

Show Top Comments

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.


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.


**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!”


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.


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.