Microsoft did the same thing with DirectX and OpenGL. OpenGL was cross-platform. Microsoft stopped supporting it, and instead insisted that developers use DirectX. This essentially killed cross-platform gaming for Mac/Linux. DirectX games port between Microsoft platforms and Microsoft's Console, but require significant middleware to port to OpenGL and non-Win32 platforms.
Use of an API, public and documented, is a form of dependence and lock-in. Apple has done. Microsoft does it. Oracle does it.
"Sixth, the most important reason.
Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. We have discussed the downsides of using Flash to play video and interactive content from websites, but Adobe also wants developers to adopt Flash to create apps that run on our mobile devices.
We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform."
Agree with him or not this is his view. And I think its a valid view. The first macs with a mouse didn't have arrow keys. And the early generation touch devices don't allow intermediate steps.
This is not stopping anyone from compiling from lisp to html5. Apple is fine with this. Buy native apps on their platform, for the time being, wont have intermediate layers.
"Open" is irrelevant. Apple is certainly no more open than Adobe.
The Full Web - whatever. Don't support it in the browser, don't support browser plugins, fine. Safari on iPhone still crashes all the time.
Reliability, security, performance - these are all things that apply to native apps built for the App Store, so why are apps built with Flash excluded in particular?
Battery life - more irrelevance. I'm pretty sure that there are games on the App Store right now that will suck away your battery's life faster than most cross-compiled Flash games. Game loops are intrinsically always busy - they don't necessarily have a natural idle point like GUI event loops do, especially if they are running at less than their desired framerate.
Touch - this is an application quality issue. I don't see any difficulty in simply not approving apps that have awkward non-touch interfaces.
The last reason, it being another layer, is the most insidious. UI difference, performance, etc. are all irrelevant - games have weird UIs, drain battery, and poor performance is a quality issue. The truth is Apple doesn't want to be disintermediated. Apple wants developers to be strictly dependent on its tools and APIs, and not use anything between the app and the platform. This is particularly offensive to me as a software developer, and it's far worse than anything Microsoft has ever tried to pull. It's the reason why 3.3.1 is phrased the way it is, and it has nothing to do with Flash and everything to do with locking developers in.
As I see it, Flash on the web is used for three things: (1) video, (2) casual games and (3) ill-advised corporate intro screens.
I'd love to see video not needing flash, but it isn't, yet. Having a sand-boxed third-party FLV player, so that it didn't need to infect the Safari process, would be nice to have. I don't really see that approving such a process would be necessarily harder than approving any other native application on the App Store.
I'd love for (3) to disappear. I can't bear those things.
And it would be great if HTML5 was universally usable and performant enough to work for (2), but it isn't, yet. I know of many casual Flash games, though, that would work really nicely as apps, and Apple is hurting me personally by increasing the barriers preventing those apps on the web from being available on my device. This policy is both anti-consumer and anti-developer. Only in the short-term is it pro-Apple, but I hope and expect Apple will fade in the longer term in competition with Android.