3 ms·
Software is applied mathematics, but much of it in fact does wear out, because it doesn't exist in isolation. It runs on and uses hardware that wears out and mo
by wk_end 5y ago
Software is applied mathematics, but much of it in fact does wear out, because it doesn't exist in isolation. It runs on and uses hardware that wears out and moves forward - do Python 2.7 or the native extensions written for it work well on Apple Silicon? It relies on ecosystems - libraries, developers, users, operating systems, compilers, networks - that move forward. This is especially true of operating systems and programming languages, because they're the basis for the ecosystems which stand on them.
And so the problems with using Windows 2.1 are precisely the same as those with using Python 2.7 - you miss out on ever-mounting additional features that make your life easier; you miss out on an ecosystem which is no longer compatible with it; you miss out on security or bug fixes and need to deal with those issues yourself; you miss out on newer, faster, more reliable or efficient or even just existent hardware (could I find a printer for a Windows 2.1 box if I wanted to?); if you're working with other people, you'll find them harder to find and need to train more and more of them as they're increasingly unfamiliar with the dated system.
And all of these effects stack - you don't just lose out on upgrades for Python, you lose out on new features or bug fixes or security updates for the libraries you use that have stopped supporting Python 2.7 too, and so on. Your world gets smaller and smaller as the rest of the world gets bigger and bigger.
If you're maintaining a legacy system, and you don't want to risk changing it in any way unless absolutely necessary, because you're a bank or controlling medical or nuclear equipment or something, then that's something to weigh. But in any case, by refusing to upgrade when the rest of the world has moved on, you're racking up a technical debt that will grow by the day.