Hacker News new | ask | show | jobs
by pjmlp 1562 days ago
Furthermore, like COM is pretty much alive (thanks WinDev), some newer Apple frameworks like Metal are actually written in Objective-C (with C++ for the shaders), Swift API for Metal are just bindings.

Regarding point 2, that was thanks to Adobe and Microsoft pressure to keep targeting Mac platforms. Sean Parent from Adobe / C++ fame was a key person in this process.

1 comments

Also, as much as Apple gets a rep for putting developers on an upgrade treadmill and breaking old apps, they actually aren't the worst offenders. Their internal rule is "don't break existing APIs without a good reason", and that's something they learned from the Rhapsody dustup[0]. You can contrast this with Microsoft and Google, who follow opposing philosophies:

- Microsoft: Don't break existing APIs, period. If the existing one can't be extended, write an entirely new system to replace it (e.g. XAML, UWP XAML) and leave the old system in the OS forever.

- Google[1]: Don't complicate your code with backwards compatibility. If some change would make the code better, scan the entire Google monorepo and recompile the world against your new version, and then tell our AppEngine customers they have about a week to transition.

[0] Carbon wasn't deprecated until 64-bit Intel support happened, and was only removed alongside 32-bit Intel support. A Carbon universal binary can target a disturbingly large range of macOS versions - basically Mac OS 8 up until macOS Catalina.

[1] Mercifully, the Chromium and Android teams actually don't buy into this.