One could argue that Apple, at least, has full control over what hardware options are available ("possible" in Apple's universe), where the computer operating systems support from Microsoft and the plethora of *nix vendors has a far larger universe of possibilities with which to contend/deal. The hardware options for Windows and Unix/Linux are wide open... so, one could deduce from that that Apple is doing a piss-poor job with regards to reliability, features and an improved user experience that are the others. And I am saying that as a "heels dug in", "pry it out of my cold, dead hands" Apple/Mac user.
This is so true. The number of supported devices by Apple pales in comparison of what Microsoft and the Linux community support.
The problem is bad coding practices, poor cross-team communication, and failure to properly expand their development teams in a professional fashion. This happened a few years ago, but I think it's indicative of the culture at Apple, which doesn't seem to have changed much:
I wanted to add an image to my iOS user profile. I went into the settings app, and tried to change it. It crashed. I tried again, a few times, and every time it would crash. Then I went into the profile a different way, to change my profile photo. Not only was I able to, but I noticed that the image selector was slightly different. Even though they had the exact same function, the code wasn't identical. It was copy/pasted/tweaked, and so while one worked, the other didn't. Any sane person would have used a common control, but Apple developers, evidently, aren't sane.
10 years of cruft later, you end up with iOS11. There's a reason it's so buggy, and it's not because they have to support 16 device types instead of 8.