So this might be a little controversial and I'm not trying to start a flame war, but rather look at how Apple produce their software in an objective way. Because as a developer and tech-user with attention to detail, I cannot look away from the fact that Apple is able to create software products that are
1) Performant / resource efficient
2) Reliable
3) Very user friendly and beautiful (GUI)
This interests me because I personally strive to create high quality software, especially when it's user-facing (client side).
e.g. How come Microsoft is beaten by Apple in terms of resource usage in their desktop OS? Is Objective-C somehow the reason for Apple's software quality success, while Windows is put together from a messy combination of C++ and C#? Yes, Apple creates both the hardware AND software, and their M-chips are largely the reason behind the 2x battery life over Windows laptops seen in recent times, but macOS/Linux-distros are still way less bloated and more resource efficient than Windows, right...? At least that's the impression I'm left with after being a user of all three desktop OS-es. Microsoft is struggling with porting their OS to ARM and I can only imagine it's thanks to it being so convoluted and messy. Also, when Microsoft creates a new desktop application, they reach for Electron or React Native over their own in-house GUI frameworks. While Apple always create their apps natively with Objective-C or the more recent Swift.
Also, if you look at iOS vs Android, iOS has always been lightyears away in terms of performance, reliability and resource efficiency. C# and Java are closely related performance wise, is this a reason behind Apple's superior software performance?
I'm just trying to organize my own thoughts and learn on the topic of high quality consumer-facing software, and I appreciate any comments and thoughts on the topic.
Apple's software only runs on their hardware, they regularly exclude recent and capable devices from running the latest versions and they deprecate and ignore insustry standards liberally (OpenGL, Vulkan, Nvidia GPUs). This makes their software much simpler to write. Compare that to Android, which runs on anything, or Windows, which I hear can do crazy stuff like run apps from the 3.X days.