I’ll say it once, I’ll say it forever: Windows has better backward compatibility, period. Even compared to linux. Rebuilding an old open source linux app to work on a modern distro can be done, but it’s a process that could take hours or days. And if you don’t have the source code you’re shit out of luck. Have fun getting that binary built against a 1 year old version of glibc to work. This, incidentally is what things like flatpak, docker and ubuntu’s nonsense competitor to both (of which our hatred is entirely rational no really stop laughing) are trying to solve.
Meanwhile microsoft office still handles leap years wrong because it might break backwards compatibility with old documents. Binaries built for windows xp will usually just work on windows 11. Packages built for ubuntu 22.0 often won’t run on ubuntu 23.0. You never notice this because linux are a culture of recompilers. Rebuilding every last package once a month is just how some distros roll. But that’s not backwards compatibility, that’s ongoing maintenance.
I think this is because Windows developers are bored to remove old code and as a result Windows 11 is an added layer on top of Windows 10, 8, 7 and even XP.
But is that desirable? I’d rather break things in favor of something better, and provide a way to make the old thing run, than be stuck with ancient baggage
Also, while that’s true for software, compatibility for old hardware is horrible under Windows
I’d rather break things in favor of something better, and provide a way to make the old thing run, than be stuck with ancient baggage
Windows is office software first and foremost, designed to be used by people who neither know nor care what an “operating system” is. Every last one of these people is entirely incapacitated by even the most lovingly-crafted and descriptive error message. If Microsoft ever considered a policy like this, the city of Redmond would be razed to the ground inside twelve hours
Rebuilding the app for the newer version is an objectively better solution, because it allows you to take advantage to new features. 64-bit migrations are a game changer for example. But its an ungodly amount of effort. Every single sodding package has a person responsible for building it for every distro that supports it. Its only because its on the distros to make a given program work on their distro that the system works at all. I agree that I’d rather it be rebuilt to fit into the new system. But that’s a lot of work. Never forget that.
Windows 11 isn’t even backwards-compatible with 7-year-old CPUs! Run a 32-bit or 16-bit (dos) exe on Win11/x64? Think again. Windows drivers are always a pain in the butt. Load up an old driver for your favorite peripheral? Probably won’t work.
I heard this concept somewhere once of “Technical Debt” wherein a thing gets made and it works really well but then it gets updated or new features are added and something breaks, but rather than tear the whole thing apart to fix the issue, a patch or bandaid gets slapped on to ship the thing. Then the next update comes along and this time it takes two bandaids, one to ‘fix’ the new problem and one to keep the old bandaid on. The next update takes three bandaids, then four . . . and so on. The accumulation of all these bandaids is known as the Technical Debt, and it must always be repaid, somehow, someday.
Microsoft stubbornly refuses to repay their technical debt at all costs, Apple is terrified of letting anyone ever get even a glimpse of their mountain of technical debt, and Linux bathes in a weird soup of refusing to let technical debt even happen and dispensing bandaids so fast they make the RedCross look like a joke.
Linux has technical debt. The kernel only just stopped supporting the i386. I can’t imagine what patches upon patches were required to make the same code run on even 2 processors released 40 years apart, let alone every processor released in between.
I’ll say it once, I’ll say it forever: Windows has better backward compatibility, period. Even compared to linux. Rebuilding an old open source linux app to work on a modern distro can be done, but it’s a process that could take hours or days. And if you don’t have the source code you’re shit out of luck. Have fun getting that binary built against a 1 year old version of glibc to work. This, incidentally is what things like flatpak, docker and ubuntu’s nonsense competitor to both (of which our hatred is entirely rational no really stop laughing) are trying to solve.
Meanwhile microsoft office still handles leap years wrong because it might break backwards compatibility with old documents. Binaries built for windows xp will usually just work on windows 11. Packages built for ubuntu 22.0 often won’t run on ubuntu 23.0. You never notice this because linux are a culture of recompilers. Rebuilding every last package once a month is just how some distros roll. But that’s not backwards compatibility, that’s ongoing maintenance.
I think this is because Windows developers are bored to remove old code and as a result Windows 11 is an added layer on top of Windows 10, 8, 7 and even XP.
But is that desirable? I’d rather break things in favor of something better, and provide a way to make the old thing run, than be stuck with ancient baggage
Also, while that’s true for software, compatibility for old hardware is horrible under Windows
Windows is office software first and foremost, designed to be used by people who neither know nor care what an “operating system” is. Every last one of these people is entirely incapacitated by even the most lovingly-crafted and descriptive error message. If Microsoft ever considered a policy like this, the city of Redmond would be razed to the ground inside twelve hours
Rebuilding the app for the newer version is an objectively better solution, because it allows you to take advantage to new features. 64-bit migrations are a game changer for example. But its an ungodly amount of effort. Every single sodding package has a person responsible for building it for every distro that supports it. Its only because its on the distros to make a given program work on their distro that the system works at all. I agree that I’d rather it be rebuilt to fit into the new system. But that’s a lot of work. Never forget that.
Windows 11 isn’t even backwards-compatible with 7-year-old CPUs! Run a 32-bit or 16-bit (dos) exe on Win11/x64? Think again. Windows drivers are always a pain in the butt. Load up an old driver for your favorite peripheral? Probably won’t work.
Ah yes, because linux drivers never break!
You might not understand the pain if you don’t own a tv tuner card but trust me, it’s ROUGH!
I heard this concept somewhere once of “Technical Debt” wherein a thing gets made and it works really well but then it gets updated or new features are added and something breaks, but rather than tear the whole thing apart to fix the issue, a patch or bandaid gets slapped on to ship the thing. Then the next update comes along and this time it takes two bandaids, one to ‘fix’ the new problem and one to keep the old bandaid on. The next update takes three bandaids, then four . . . and so on. The accumulation of all these bandaids is known as the Technical Debt, and it must always be repaid, somehow, someday.
Microsoft stubbornly refuses to repay their technical debt at all costs, Apple is terrified of letting anyone ever get even a glimpse of their mountain of technical debt, and Linux bathes in a weird soup of refusing to let technical debt even happen and dispensing bandaids so fast they make the RedCross look like a joke.
Linux has technical debt. The kernel only just stopped supporting the i386. I can’t imagine what patches upon patches were required to make the same code run on even 2 processors released 40 years apart, let alone every processor released in between.
Backwards compatibility, but at what cost?
The stifling of innovation. So that’s more of a feature to microsoft
The vast majority of software run on Windows these days runs in a web browser. The legacy shit in windows doesn’t impact most software engineers
Or its an electron app.
One good thing (probably the only good thing) about electron is it makes it easy to port an app to linux.
Something something something history repeating