Live data from Hacker News

Why Does Software Rot?

overcomingbias.com

11–20 of 81 posts

Re: Why Does Software Rot?

#11

What does rot even mean, in terms of software? As far as I can tell, he means "Why is complex software hard to change " which is a reasonable, though fairly easy to answer, question. Software doesn't rot. New features or refactors screw it up. New needs or technologies may make it obsolete. But it doesn't rot, and people who talk that way are often busy-body rewriters who want to pitch the existing implementations, w…

The American Chesterton Society logo had to be the inspiration for Buzz Killington.

http://familyguy.wikia.com/wiki/Buzz_Killington

Re: Why Does Software Rot?

#12

What does rot even mean, in terms of software? As far as I can tell, he means "Why is complex software hard to change " which is a reasonable, though fairly easy to answer, question. Software doesn't rot. New features or refactors screw it up. New needs or technologies may make it obsolete. But it doesn't rot, and people who talk that way are often busy-body rewriters who want to pitch the existing implementations, w…

> Software doesn't rot.

On the face it, that's true. But the reality is that the environment that software runs in is constantly evolving and software that doesn't also change slowly starts working worse until it stops working entirely. We have plenty of software at my work that hasn't changed fundamentally in 10 years and can no longer be used.

Lots of really old software requires equally unchanged old environments and old hardware and that hardware slowly rots too.

Re: Why Does Software Rot?

#13
post #4

Earlier quoted context omitted.

It rots in the sense that it becomes harder to change (or fix) over time, even if the code stays the same. This happens via loss of institutional knowledge as people forget how it works, loss of knowledge of the technologies used as they're replaced, etc. It's not just the complexity. Old code is usually harder to change than new code, even if they're equally complex.

That isn't rot. The metaphor doesn't make any sense. Software literally does not change. Except for the occasional cosmic ray, I can think of few things less appropriate to apply the term "rot" to.

Software doesn't exist in isolation. It interacts with its host OS, shared libraries, other programs, protocols, file formats and external systems. If it can't keep up then it effectively rots even though not a single byte of it has changed.

Re: Why Does Software Rot?

#14
post #10

Unless your sandboxed in a self contained hardware and software environment (such as an embedded system) you will eventually be screwed. (rot sounds like a gradual degradation its generally not in my position) Standards changes and OS Updates are the biggest culprit; The Vista update broke a couple of my old programs (written for Windows 95) due to the user access control changes, another was broke due to the fact it…

This is because there's little glory in simply making things work. There is glory in making things that look shiny and new. As they say, "Absolutem Obsoletum".

And congratulations on understanding exactly why I prefer embedded systems - you don't have to keep chasing the dragon of the fashionable new thing ( which is invariably old wine in new skins ). It is not that there is no new wine it is just that proportionally, it's less than all new things on offer.

FWIW, if you look carefully there will always be a motherboard available with a working parallel port. They're not cheap, and at some point the thing plugged into that parallel port wears out.

Re: Why Does Software Rot?

#15

Software rots if you can no longer set up the exact tool chain and environment (compiler, build tool, OS version, external database, etc) required to build and run it. Even interpreted languages suffer from this problem as features are subtlely changed - by design or accident. It doesn't matter if your project is using an ancient version of VC++ or a two year old version of NodeJS. If it doesn't keep up with the late…

Through the miracle of virtual machines, this is much less so. VMs are the NAT of computer systems.

Re: Why Does Software Rot?

#16
> Newer programming languages are often interesting, but they are typically less flexible at first than older languages. Everything else being equal, older languages perform better and are faster

At the cost of more difficulty in writing, or other tradeoffs (e.g. security).

> Programmers, especially young programmers, often prefer to start from scratch. .. In part because it is much more fun to write code than to read code, while both are equally hard.

No way! You need to NPM literally everything.

Re: Why Does Software Rot?

#17

Software rots if you can no longer set up the exact tool chain and environment (compiler, build tool, OS version, external database, etc) required to build and run it. Even interpreted languages suffer from this problem as features are subtlely changed - by design or accident. It doesn't matter if your project is using an ancient version of VC++ or a two year old version of NodeJS. If it doesn't keep up with the late…

Through the miracle of virtual machines, this is much less so. VMs are the NAT of computer systems.

Less so, I agree. But give it time - older VM image and container formats will probably rot as well.

Re: Why Does Software Rot?

#18

Software rots if you can no longer set up the exact tool chain and environment (compiler, build tool, OS version, external database, etc) required to build and run it. Even interpreted languages suffer from this problem as features are subtlely changed - by design or accident. It doesn't matter if your project is using an ancient version of VC++ or a two year old version of NodeJS. If it doesn't keep up with the late…

Some smart dude, don't remember who, said that every single line of code becomes technical debt the moment it is written.

Re: Why Does Software Rot?

#19

Earlier quoted context omitted.

Through the miracle of virtual machines, this is much less so. VMs are the NAT of computer systems.

Less so, I agree. But give it time - older VM image and container formats will probably rot as well.

VM formats are easier to migrate than the actual software they run.

On the other hand this is a valid concern for containers.

Re: Why Does Software Rot?

#20

Software rots if you can no longer set up the exact tool chain and environment (compiler, build tool, OS version, external database, etc) required to build and run it. Even interpreted languages suffer from this problem as features are subtlely changed - by design or accident. It doesn't matter if your project is using an ancient version of VC++ or a two year old version of NodeJS. If it doesn't keep up with the late…

Through the miracle of virtual machines, this is much less so. VMs are the NAT of computer systems.

Even though the VM image and tooling may still be runnable, the world around it with which it must interact continues to evolve and can leave your software obsolete.
Post reply on HN