> Apple should enhance the permissions system and allow the
> installation of software from other sources.
Arguably, Apple already provides this. It's called WebKit.
More to the point, Apple could have forced all 3rd-party software to run in a virtual machine, like Microsoft, and Google, and Palm, and RIM. They could then provide graduated API access, make their app review process a hell of a lot simpler, and eliminate the review process altogether for software distributed outside of the App Store.
Instead, they allow 3rd-party apps to run on the bare metal as full-fledged OS X applications. There are advantages and disadvantages to that approach, but it's very hard to argue that they made the wrong choice given how things have turned out. Everything else is academic.
Justifying the sole control of UIKit application distribution based on the fact that either WebKit exists or that UIKit is not implemented within a VM is illogical and irrelevant.
OSX on armv6 or v7 is secure enough to not warrant the use of a virtual machine. Virtual memory and memory protection were not commonly found in mobile pre-iPhone, making the choice of the JVM or dalvik in 2003, when Android was founded, or earlier in the case of RIM, convenient.
Regardless, the review process as it stands provides little in the way of additional security, a fact that further weakens your vague argument. Static analysis can only go so far. The status quo is about desire for revenue, not supposed "technical realities". All I am proposing is that allowing apps from other sources would have little effect on either.
Call me when Apple ever allows fully native 3rd-party software on the Mac.
Android has allowed native code through the NDK since 1.6. Now, you have to use it in conjunction with the SDK and thus some of your code will have to be in Java, but the main reason I can see to get down to the "bare metal" anyway would be for performance critical algorithms.
More to the point, Apple could have forced all 3rd-party software to run in a virtual machine, like Microsoft, and Google, and Palm, and RIM. They could then provide graduated API access, make their app review process a hell of a lot simpler, and eliminate the review process altogether for software distributed outside of the App Store.
Instead, they allow 3rd-party apps to run on the bare metal as full-fledged OS X applications. There are advantages and disadvantages to that approach, but it's very hard to argue that they made the wrong choice given how things have turned out. Everything else is academic.