Recently, there is a discussion here on Hashnode about why people hate Apple. A huge topic with Apple in general is how they essentially "wall people out" of their system, as mentioned by @bmlyon . I would like this thread to be a discussion, and perhaps even a documentation of sorts, of what all specifically Apple does differently which "builds this wall." I think it would be awesome to have all of the different points listed in one thread and perhaps in the future we can update it if Apple changes things.
One thing I was surprised to learn is that their Kernel XNU (correct me if I'm wrong) is fully open-source. I would like to know which parts of the OS are indeed proprietary if anyone knows and have some discussion about that. Finally, which parts of the API and/or development platform are "restricted" in ways that they are not on other operating systems. I think I have an idea, but I want to hear it from someone who knows more about Apple as I am very new to learning about their software.
Thank you.
**NOTE: Brandon if you have the time, I would love to hear your response to this.
Ok, lets sum up what Apple does different:
the OS is software tied to the set of hardware they sell. The hardware it self is basically a custom designed x86/x64 Plattform resp. Custom ARM on iOS side
on MacOS however you can install any software you want. The App Store is optional (always has been)
when you develop for MacOS/iOS exclusively then you have to do this on a Mac commonly with XCode. On cross platform development (depending on the technology) you have at least to compile on a Mac to get a Mac specific build/binary. To be fair: same is mandatory if you want a Windows executable. May there are exceptions (pointing to the new .net core: are there exe‘s created when compiling on a different platform?)
Hmm that’s all that comes up to my mind. I will add/ correct things when something else comes up or I was wrong :)
AFAIK down from my mind, Some APIs, the GUI toolkit Cocoa and their applications (iWork, iLife etc) are closed source. The kernel, the tool chain and some other API (OpenCL) are open source. I’m not entirely sure that I forgot something.
Edit: One more open source: swift
Edit 2: for those who are interested in detail should check out Apple‘s OSS website. opensource.apple.com
Legally, it's their hardware and their OS or GTFO. that's the most obvious. Hackintosh can get you around that if you have the skills, but honestly... as much as we make fun of Ballmer for it?
Developers, Developers, Developers, Developers.
Locking yourself into one hardware and OS platform when you're in a solid third place in the desktop/notebook market does NOT endear you to the casual learner... if you don't have the beginners you'll never have experts.
Brandon
Frontend Developer
A walled garden means they control the only means of distribution. If you want an iOS device you have to buy iOS hardware and buy apps/music/videos from their app store. You can't even run other browsers despite theirs currently being inferior. At least they finally opened up their devices to other clouds.
If you sell on their app store, they take a large cut of the profits and your sales are subject to their rules. You have no other option except to not sell to their devices.
When it comes to MacOS, the OS is not very customizeable. They actively try very hard to do prevent you from doing what you want with their software. Windows and Linux are much better in that regard. For example alternate shells and WindowsBlinds on Windows or changing Desktop Environments in Linux.