Oh really? I know of many games and productivity software that works on XP but not on Windows 10. Even software that ran fine on Windows 7 can have problems on Windows 10. Many programs are poorly written and rely on very specific aspects of the operating system, which changes, even within a particular "release". Do you recall trying to run stuff on Windows XP when Service Pack 2 for XP was released? Yeah, a lot of stuff broke.
That's not my argument. Notice the word **current**. Windows applications written at a specific point in time work on the current version of Windows **at that time**. Of course there's no guarantee they will work on future versions (although many do). Linux applications written at a specific point in time do not necessarily work on every distribution, desktop environment, etc. available at that time. It's about user experience. If you have a current version of Windows you can be 99% certain whatever Windows application you buy will run on it without a ton of hassle.
Eh? For developers, it is even worse. Did you bank everything you had on VB6? Too bad. Silverlight? Too bad. .Net 2.0? Too bad. Any of the specific versions of IE? lol, too bad. Oh, and if you use Microsoft development tools, telemetry (that you don't get to see) is built right in.
But none of these decisions impact **users**. If you write a Windows application that depends on Silverlight, you just redist Silverlight as part of your applications installer. You wrote a VB app but the user doesn't have the VB runtime libraries? You package them with your app. These design decisions don't impact or fragment your potential userbase on Windows, whereas on Linux if you write a GNOME application, KDE users won't be able to run it. Do you expect KDE users to install all of GNOME just for your application? Or if you package your application as an RPM and target Fedora, then Ubuntu users won't be able to install it. So you make a .sh installer, but then it breaks for Gentoo users who don't use systemd. On Linux your potential userbase is so fragmented it's not worth developing for if you're in it to make money, unless you have a very niche application.