MacOS – OSX 10.X App Compatibility Legality – Parallels


I've been a very long time Windows user and software engineer and last year I bought my first MacBook Pro.

One of the issues I've been genuinely shocked by is the questions around application compatibility after a 10.X update.

I have code I wrote and apps I used on Windows 95 that still happily runs on Windows 7, 8 and will no doubt continue to run on Windows 10 when it arrives.

I have a vast gap in my knowledge as to why this issue exists on OSX and would love to hear from people here what the nuts and bolts issues are. To my Windows leaning understanding I could understand this with a major version increment but I don't get understand why a minor version number update would be such an issue.

One particular issue for me has been with Parallels Desktop. For the last few months my installation of Parallels has been telling me to upgrade from version 8 to version 10 as version 8 is "incompatible" with Yosemity and "will not work".

There are posts from Parallels employees on their own support forum stating this repeatedly to users as well as the application offering a dialog on application launch also repeating this message.

One of their support staff even stated in a post that when they tried it in their labs the VM software simply wouldn't even launch.

Well, yesterday I updated to Yosemity and launched Parallels 8 and ran my VM without any issues.

I don't know about other countries but this is completely illegal marketing practices in the UK. They have so clearly told me that what I did would categorically not work when in fact it did. I have saved myself a £35 upgrade by all accounts.

Parallels customers are complaining about the upgrade cycle and leaving the Parallels platform in droves by all accounts and switching to the free Virtual Box and after this experience I am certainly not giving them any more of my cash.

It seems that many vendors talk about a minor OSX version increment like it's a completely different OS and application model under the hood which to my mind just doesn't make sense.

Since I'm yet to take up Mac software development with any real world software I'm not aware of what these issues might be and now that I feel I have been completely mislead by Parallels I'm feeling particularly annoyed that I could have spent £35 on a software update based on what appears to be lies.

What are these potential incompatibilities? Obviously new features of the OS wont by used by "old" software but to be told that my apps won't even launch when in fact they do is seriously questionable business practices and is even illegal in my country.

Best Answer

To provide an insight into the API level changes between OS X versions, Apple's What's New in OS X developer document is useful.

The deprecated framework and function lists can be extensive between 10.x releases:

Deprecated Frameworks and APIs

Periodically, Apple adds deprecation macros to APIs to indicate that those APIs should no longer be used in active development. When a deprecation occurs, it is not an immediate end of life for the specified API. Instead, it is the beginning of a grace period for transitioning from that API and to newer and more modern replacements. Deprecated APIs typically remain present and usable in the system for a reasonable time past the release in which they were deprecated. However, active development on them ceases, and the APIs receive only minor changes to accommodate security patches or to fix other critical bugs. Deprecated APIs may be removed entirely from a future version of the operating system.

As a developer, avoid using deprecated APIs in your code as soon as possible. At a minimum, new code you write should never use deprecated APIs. And if your existing code uses deprecated APIs, update that code as soon as possible. Fortunately, the compiler generates warnings whenever it spots the use of a deprecated API in your code. You can use those warnings to track down and remove all references to those APIs.