|
|
|
|
|
by derefr
3928 days ago
|
|
I don't know about "not wanting you to know what's going on in your machine." It's more like they want you to treat their public OS API as "the machine": a clean black-box abstraction layer you can build on. What goes on underneath, while interesting, is not guaranteed to be stable. They might, say, replace x86 with ARM one day, as they already replaced PPC with x86. If you're targeting "the OSX platform", that doesn't affect you; you just hit rebuild in XCode. If you're targeting the underlying computer, you're screwed. Apple doesn't want you to be screwed (really, they don't!), so they try to disincentivize relying on anything below the public API. Compare this to Microsoft, where the Windows team deals with cases like these[1] by inserting compatibility shims to keep the behavior of applications using undocumented, non-public-APIs (or munging kernel-shared opaque structs, even) stable between OS releases. While it's great for end-users—their apps don't break—it incentivizes relying on private APIs, because Microsoft will effectively keep your app running for you. [1] http://blogs.msdn.com/b/oldnewthing/archive/2003/12/23/45481... |
|