Apple prioritizes the end user experience over the developer's experience and aren't shy about rubbing that in. More than that, Apple prioritizes having control over its own fate, and if developers using intermediary layers have to suffer for Apple to retain its relative autonomy then so be it.
Microsoft's philosophy has the logic: if we have all the developers, then the end users will flock to us, so we're going to cater to the developers. Apple's philosophical logic is: if we make something that 'just works' and that all the end users lust after, the developers will come to us, so we have to retain our ability to push things forward.
I'm not sure which philosophy, if either, is better overall. But it seems pretty clear which one angers developers more.