[0] And, for that matter, most of their other operating systems.
[1] WindowScene, technically
[2] Astute fans of macOS history might remember this sounding quite familiar. When Steve Jobs bought Apple with Apple's money, he wanted to basically continue NeXT as it was (even the Windows NT port) and replace System 7 entirely with lightly-rebranded OPENSTEP 5 and a VM (dubbed the "penalty box"). This failed so dramatically the whole project was cancelled/rebranded as "OSX Server", and Apple announced Carbon to provide Classic APIs with minimal changes on OSX.
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.
- 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.
Perhaps I should have said feature frozen on-the-way to deprecation instead. All new development in lang/ux is happening in Swift/SwiftUI.
https://medium.com/geekculture/swift-5-uikit-is-dying-14b475...
https://medium.com/geekculture/swift-5-uikit-is-dying-part-2...