Mac APIs have indeed worked as advertised for many years.
My own concern is watching Apple pursue a path of driving upgrade purchases through (A) increased performance and (B) breaking older systems or (C) disqualifying them from use of current software.
C is easy and practiced intensely by Apple, which abandons support for older stuff VERY REGULARLY in XCode. This may or may not be better than allowing it to rot and become deeply broken through lack of maintenance, but it's a choice and Apple repeatedly chooses to throw away even the possibility to support older machines.
B happens through rot: things get complicated, and if they don't care what happens to you AND they are changing your machine out from under you, they can just randomly brick it one day and not be a bit sad about it. It was your fault for not buying newer things, regularly.
A is also something Apple's been capable of. You buy into that and if you stay on the bleeding edge, Apple's become pretty good at keeping you riding that wave of the best computers can do, at any given moment. This also (to some extent) helps the older stuff become more affordable as it's left behind: that's positive in its way. 'Bleeding edge' is not the only kind of functionality to have. I've noticed that for music production testing of Apple Silicon, all the test cases are completely unrealistic: 4000 tracks each of which has 10 Space Designers, etc etc. That means the use case is a solved problem: you don't need the new Mac to do it, at any reasonable level. 8K feature film video on the desktop, yeah you can still need bleeding edge for that. Music, no, not at all.
This is also why it's important that Apple not break its own APIs or let them rot. On the whole, the functionality just works, every time, no matter what. This is a serious thing to risk by allowing the platform to become less reliable due to needing to 'churn' it and sell new generations of machines.
My own concern is watching Apple pursue a path of driving upgrade purchases through (A) increased performance and (B) breaking older systems or (C) disqualifying them from use of current software.
C is easy and practiced intensely by Apple, which abandons support for older stuff VERY REGULARLY in XCode. This may or may not be better than allowing it to rot and become deeply broken through lack of maintenance, but it's a choice and Apple repeatedly chooses to throw away even the possibility to support older machines.
B happens through rot: things get complicated, and if they don't care what happens to you AND they are changing your machine out from under you, they can just randomly brick it one day and not be a bit sad about it. It was your fault for not buying newer things, regularly.
A is also something Apple's been capable of. You buy into that and if you stay on the bleeding edge, Apple's become pretty good at keeping you riding that wave of the best computers can do, at any given moment. This also (to some extent) helps the older stuff become more affordable as it's left behind: that's positive in its way. 'Bleeding edge' is not the only kind of functionality to have. I've noticed that for music production testing of Apple Silicon, all the test cases are completely unrealistic: 4000 tracks each of which has 10 Space Designers, etc etc. That means the use case is a solved problem: you don't need the new Mac to do it, at any reasonable level. 8K feature film video on the desktop, yeah you can still need bleeding edge for that. Music, no, not at all.
This is also why it's important that Apple not break its own APIs or let them rot. On the whole, the functionality just works, every time, no matter what. This is a serious thing to risk by allowing the platform to become less reliable due to needing to 'churn' it and sell new generations of machines.