You may need your rant-proof goggles for this post.
In the last few years, we’ve seen the price of major operating system upgrades drop, down from $100-to-$150 to…$0. And free is a magic number – once you make something free, people install it without doing a lot of critical thinking about whether something is a good idea or not.*
This creates a software compatibility disaster for OS vendors, app developers and users.
- The OS vendors (Microsoft, Apple, etc.) try really hard to keep the minor patches to the OS from breaking compatibility. They need users to install updates aggressively to fight malware. So a break due to a minor patch is a rare thing.
- The OS vendors can’t keep legacy APIs going forever – at some point they need to change fundamental technology.** So they save the big changes for major versions.
- Major versions are now free – so users install a major update aggressively, taking incompatible changes that the OS vendors had to put somewhere, breaking their apps.
We first saw this with Yosemite, which caused us a bit of a fire drill, and now we’re seeing it with Windows 10, where I have just seen a pile of weird-o random behaviors that are specific and unique to Windows 10. At least some of them seem to be a clear case of OS compatibility rules changing at a major version.
So first, here’s my advice:
Don’t be the first pilot on the block to update the OS on your X-Plane machine.
Let someone else go first. These days new OS releases just don’t offer some new feature that is so totally awesome and amazing that you can’t wait a few weeks to see if the compatibility situation is good or bad.
In the long term, what we need is a new normal. Currently application developers depend on compatibility-breaking API changes happening at well-defined, infrequent, major inflection points, e.g. the full OS upgrade. But full OS upgrades are gone; Microsoft is saying that they’re just going to patch Windows 10 forever, and Apple puts out a new OS version so frequently that they’re not all that different from patches.
We could simply declare ourselves “not compatible” with future OS versions until we’ve had time to survey the damage, but that’s not a real solution – most users are going to update first and read the fine print later.
It may be that we have to follow OS betas much more closely. There’s definitely some irony here – I am always berating third party developers to retest their add-ons against X-Plane betas. (“We’ll fix the bug, just check your add-on!”) Third party developers have a good reason not to want to do this – they need to do real work on their new aircraft, not spend their time testing our builds. We have a similar view about OS betas – it’s a time-sink for us to keep re-testing X-Plane on the latest unstable crazy-town beta. (OS betas can be a pretty big mess, so isolating regression bugs that affect your product from general breakage is sometimes difficult.) But we’re in the same situation with Apple and Microsoft that third parties are with X-Plane: if you don’t report a problem, it may not get fixed.***
* This has had the effect of making free-to-play a near-requirement in the mobile market. If your mobile app category is even slightly competitive, then you are one of ten apps doing the same thing. A user will download and try every free app in the category before buying even one $0.99 app. So if your competitor is free-to-play and isn’t totally unusable and awful, you had best be free-to-play too!
** For example, Microsoft has been trying to evolve the rules about high-DPI devices and app resolution. This is a necessary step because monitors have become much larger and much higher DPI; keeping the old system forever would mean not actually supporting this technology.
*** Apple and Microsoft test third party products themselves to try to catch problems directly, and we now do the same thing with third party add-ons. But the amount of test coverage we can find is definitely not adequate to guarantee that your add-on is perfect coming out of beta. All we can hope to do is add another layer of defense.