Hacker News new | ask | show | jobs
by AnimalMuppet 252 days ago
It's not just 30 years old. It's 30 years of people building libraries of useful code. If you "modernize" it so that much of that 30 years of work is thrown away, that's really expensive - maybe more expensive than continuing to build on a less-than-perfect foundation.

But that turns into the trap of short-term thinking - eventually you reach the point where you would have been better off throwing it away and starting over. You don't reach that in the year you throw it away, though, nor in the year after.

2 comments

That CAN turn into the trap of short term thinking. However if you keep investing in modernizing over time you can get most of the benefits of updated code without having to scrap everything.

The catch is you will also have a bit of old code that cannot be modernized reasonably, and new code has to somehow interoperate with it. Which means languages can't break anything because it might be the one thing you can't figure out how to not use anymore even though you know better and would do it different if you started today. Worse often the problem is an early design decision and so the bad practice is everywhere and you can't get rid of it in any one place because everything depends on it.

Python is one language that famously broke backwards compatibility with the 2.x/3.x split.