Wednesday, October 7, 2009

More Flash Thoughts

There's been a lot of interesting discussion around the whole Flash CS 5 generating iPhone Apps thing. None of it has changed my opinion that it's in Apple's best interests and ultimately the best interests of iPhone users for them to take steps to stop Adobe from moving forward with this, or at least for Apple to set some boundaries with Adobe and phase the program in over time to avoid overwhelming the App Store infrastructure. The problem is multi-faceted, which can be confusing. To me, it seems to break out into a couple of related, but distinct issues:


  1. Technical: Are the applications generated by Flash 5 as good, or at least "close enough" to being as good as those created using Xcode? It's not a simple question, because even the best tools can be used to generated sloppy, bloated executables, but it's still important to get a sense of whether the typical Flash-generated application is going to be comparable to the typical applications created using Xcode. It's an unanswered question. I'm sure Adobe is going to argue that their applications are just as good. I, and many other developers who have been working with the platform since it came out are going to be somewhat skeptical of that claim. How likely is it that they've been able to add an extra layer of complexity, including a garbage collector, and not incur any additional overhead? Probably nots possible, but the question then becomes: just how much overhead does it add? Is it enough to really matter?

    This is just an educated guess, but with first and second generation iPhones, I'm going to bet it will matter, and the simplistic nature of the Flash apps already on the App Store does little to dispel that notion. If the apps were really "just as good", they would have put a sample up that really showcased what they could do rather than just showcasing the fact that they could do something. If they were just-as-good, Adobe would have wowed us with a 3D game or something else that really pushed the limits of the iPhone's hardware. Even on my 3Gs, I thought the Flash iPhone apps all felt a little sluggish compared to what I'm accustomed to.

    Unfortunately, we have no objective data on this point right now. We have no way to take an app generated by Flash CS 5 and the same or similar app ported to Objective-C and compare them in meaningful ways. If someone would be willing to compile a version of a iPhone apps with debug symbols on, I might be able to get some hard data using the performance tools. As things stand, though, we have no objective data, and without that, it's all conjecture. We could argue forever, and neither side will concede anything.

    In my mind, there's enough reason to believe the apps won't be "as good" technically speaking, that it's fair to put the burden of proof on Adobe. They should prove that these Flash-generated apps are capable of being just as good or at least identify how close they are and support that claim with verifiable data. We already know the file size of the Flash-generated apps are considerably larger than comparable Objective-C apps created with Xcode. Subjective evidence seems to point to the apps also being slower. I'd like to see some hard evidence so we can judge them more fairly, but until some exists, I think it's a fair assumption that these Flash-generated apps are not as good and the differential is enough to matter. If somebody wants to prove me wrong, I'd be thrilled to see some hard evidence so we can discuss this intelligently. If I am wrong, believe me, I will be suitably impressed by the engineering that went into it.


  2. Logistical: There is a very large installed based of Flash developers and a large amount of existing content. The popularity of the App Store has already caused significant growing pains. The team responsible for doing App Reviews is overworked as it is and are doing a thankless job. Allowing existing Flash developers and existing Flash content to flood into the App Store almost overnight is bound to cause significant issues for the App Store infrastructure and the people responsible for maintaining it. That, in turn, will cause problems for customers and developers alike.


  3. Equitable: Related to the previous point, this flood of new content literally overnight is going to have a significant and detrimental impact on existing developers. You know, the ones who invested the time and effort to learn the platform and native tools? Those developers who will be penalized for that effort by having longer wait times and a lot more apps to compete with for attention. It's unlikely that the size of the App Store pie is going to increase measurably as a result of the influx, so an influx of new apps is inevitably going to dilute the chances for any single application to make a profit. It hardly seems very fair that the people who actually put effort into learning the platform and who have dedicated themselves to the platform won't be able to reap the benefits of that hard work without putting in addition effort to figure out how to get noticed above a sea of quickly-ported Flash games. Contrariwise, it hardly seems equitable to reward those who couldn't be bothered to learn the native tools.


  4. Political: Adobe and Apple long ago stopped being BFFs and have been in a somewhat contentious coopetition situation for quite some time. Apple made it very clear to Adobe on a number of occasions that Flash was unwelcome on the iPhone, and yet Adobe has continued to push ahead with an amazing disregard for that, fueled by what seems like a tremendous sense of entitlement: a feeling that they have a right to benefit from Apple's success with the iPhone even though they did not contribute to it in any way. The part that really doesn't sit right with me is that Adobe isn't being up front with their developers about how risky the situation is for them as a result of the politics of their relationship with Apple. Adobe didn't create Flash CS5's iPhone functionality with Apple's consent or knowledge. In fact, they did it despite being specifically told Flash wasn't welcome. That's pretty fucking rude. It's like inviting a million people over to somebody else's already-jam-packed party. Throw your own fucking party, man. Seriously. And the whole sneaky way Adobe went about putting their apps into the App Store just reeks of dishonesty. It's ends-justify-the-means thinking and it really does not endear me to Adobe at all.


  5. Legal: Despite Adobe's claims, I'm incredibly skeptical that they could have created the tools needed to generate iPhone apps without using Apple's toolchain at all given the amount of time it took them, unless they had access to the SDK and violated the legal agreement that they had to agree to to get access to it. Apparently, Adobe management is reassuring their employees internally that they respected the SDK agreement to "the best of their understanding" and are claiming that they didn't reverse engineer anything. I suppose it's possible, but it's improbable to the point of ridiculousness and I don't buy it.

    That Adobe could have figured out how to link to and use objects and functions from Apple's frameworks and figured out what to link to without some amount of reverse engineering just stretches credulity given how much of the iPhone's internals are not documented officially. Adobe's trying to make it sound like it was just a matter of compiling down to ARM assembly code and they didn't need to reverse engineer anything to do that. But it's not as simple as that. These generated applications have hooks into many of the existing Apple frameworks, including UIKit, OpenGL ES, Quartz, Core Animation, and Audio Queue Services. They are leveraging Apple functionality to do a fair chunk of the work, which means Adobe did more than just compile ActionScript to execute on the iPhone's ARM processor. A lot more.

    Even if they didn't reverse engineer anything, I would put forth that Flash 5's iPhone application generating ability IS a derivative work under section 2.5 of the iPhone SDK agreement. This would seem to be precisely the type of thing that Apple was trying to prohibit when they put that clause in the contract, so even if Adobe was completely above-board and did no reverse engineering, I think there's still grounds to allege they are in violation of the SDK agreement.

    At very least, I would say that there's sufficient grounds for Apple to bring legal proceedings if they choose to. They could very likely get an injunction to prevent Adobe from releasing the iPhone portion of Flash CS 5 if they wanted. I have no idea if Apple will go this route. I honestly doubt it's their first choice for dealing with the situation, but it's an option that's available to them and, therefore, is an added risk for Adobe and any Flash Devs who choose to use it.


It will be interesting to see how things unfold. The technical questions will eventually be known. At some point, we will be able to compare Objective-C and Flash-generated apps and get some concrete data about their size, efficiency, and performance. For the rest of it, the ball is really in Apple's court. Until Apple makes their next play, we don't really have an inkling of how this will all play out. Everything from Apple embracing Flash IPhone apps to an all-out war with Adobe is within the realm of possibility.



21 comments:

Matthew Frederick said...

I agree with four of your points, but despite the fact that I'm burning the midnight oil to learn Obj-C and native iPhone programming (including from your book, it's great!), I don't think the equability issue is all that valid.

I mean sure, it seems unfair, but I don't think that really means anything. I imagine that if I'd spent years learning and honing my Actionscript skills, I'd feel it was unfair that my Flash apps won't run on the incredibly popular iPhone platform.

Things not feeling fair is unpleasant, but I don't think it's a great argument for why this whole thing is bad.

Tom Frauenhofer said...

Let's consider your arguments: (BTW, I'm not a fan of the Adobe Flash approach to building apps but I'm at least open to the possibility of alternative environments like this - to me, this is beginning to look like a pissing match between Adobe and Apple instead of something constructive and helpful for either development community)

Technical: As long as the apps give a satisfying user experience I don't know if I really care about this point. And by "satisfying user experience" I mean that they don't eat memory, cause the iPhone to crash at some later point, or other badness (and you know that since this is a 1.x release of something it will definitely have this badness). Just on this grounds any developer considering this should have second thoughts.

Logistical and Equitable: While I appreciate the points you're making here, IMHO it's really not relevant to this discussion. Business is not fair. That there are suddenly a lot more applications that "fill up the pipe" for whatever reason is a risk we as application developers have to accept. There's no guarantee as to how speedy the approval process is.

Now, Apple has to staff up to handle the incoming flow in a way that they see fit. This factors in turn-around time, number of apps, what kind of process they want to use to review each app (and how long it should take/how thorough it should be), etc. That's the cost to Apple, and the risk that they assume is that they somehow get a burst of applications that blows out their projections. Again, the cost of business on their part, and something that affects developers but is out of their control. And it doesn't matter if it's flash, lua, mono, xcode, or whatever causes this burst.

Do I want this? No. Do I have to accept this? As an app developer, yes, unfortunately. Does it suck? Big time.

Political: I agree, Adobe is trying to push into the platform, and Apple has specifically said no. Unless Apple can tell the difference between a Flash-based app and an app built the "approved" way, however, then it's a "so what?" argument. Adobe is being a bad citizen here, but I don't think this is enough in and of itself to say they can't do it.

(I don't know how much of this is an act of entitlement as much as it is an act of the need for Adobe to survive - especially in light of HTML 5 and a more native interactive web experience. Adobe needs to find new avenues if they want to keep the Flash experience alive, so I'm not surprised they're acting the way they are.)

Legal: This is the only real argument that holds any water to me. If Adobe isn't living up to the SDK agreement, then all the flash-based apps should be rejected, and Adobe has opened themselves up to responses by Apple up to and including legal action. Having an Adobe exec say to the best of his knowledge they haven't violated the SDK is just not good enough (ignorance of the law and all that).

Philippe said...

I'm pissed of with flash on the iPhone too... Last three months in my life were all about learning Obj-C and the iPhone SDK + the fact that I had to buy a Mac... So flash on the iPhone = turn off for new developers who would like to learn to code for the iPhone...

Jeff LaMarche said...

Matthew:

I doubt many Flash developers will see it as inequitable. On the other hand, I doubt there are many current iPhone developers who won't see it as an equity issue.

It's a matter of perspective. It's in your benefit, as a Flash developer, to get access to the App Store and 50 million iPhone OS users without having to learn a new language and set of frameworks, so that's going to color your opinion, just as having to compete with a huge influx of new competitors who were given a shortcut to bypass that work is going to color the opinion of iPhone devs.

I disagree about whether it's important, however. Apart from the issue of what's "right", most current iPhone devs are either long-time loyal Mac developers, or are people who left other platforms to devote themselves to developing titles for the iPhone. It is vitally important for Apple to encourage and foster that. Loyal developers provide more value to Apple's users than those who see the iPhone as "just another platform to make money on". It is not a competitive advantage to be able to run a program on the iPhone that exists elsewhere.

It IS a competitive advantage to have developers creating exclusive content for your platform. Therefore, it's important for Apple to act as an advocate for those developers, because those developers are more important to their long-term success (strategically speaking, not in a larger sense).

Jeff LaMarche said...

As long as the apps give a satisfying user experience I don't know if I really care about this point. And by "satisfying user experience" I mean that they don't eat memory, cause the iPhone to crash at some later point, or other badness (and you know that since this is a 1.x release of something it will definitely have this badness).

That's exactly what I mean by "as good", however. Without access to the source, or at least applications compiled with debug symbols, we don't know. We do know that the apps are bloated and tend not to be as responsive. My initial investigations seem to show that they are memory hogs as well - best as I can tell, Red Hood takes 25 megs of heap allocation when I run it. It shouldn't take 5 given what it does.

It's important because if Flash CS5 generates programs that are more prone to crashing, it's going to make Apple look bad and give people negative impressions of the iPhone.

While I appreciate the points you're making here, IMHO it's really not relevant to this discussion. Business is not fair.

I hate the whole "business is not fair" schtick. That's the thinking behind Enron and countless other problems in our country's history. I'm not going to excuse asshattery just because it was done by a corporation or in the name of profits.

That being said, if you look at my response to Matthew Frederic's post, I think there are valid business reasons why Apple should care about this. It's important for Apple to encourage developers who create exclusive content.

Unless Apple can tell the difference between a Flash-based app and an app built the "approved" way, however, then it's a "so what?" argument.

They can tell. I can tell. The application bundle structure is very different between a Flash-generated iPhone application and an Xcode-generated one. If Apple chooses to, it would be trivial for them to cause Flash-generated apps to break. I'm not sure that's a good move in terms of public perception, but it's definitely possible.

entitlement as much as it is an act of the need for Adobe to survive

I agree that they look at it that way, which is why they seem to feel justified. I don't agree that it is actually a valid justification.

This is the only real argument that holds any water to me.

Fair enough, but the rest matter to me, and will matter to many others. I suspect at least some of them will matter to Apple, and it's their move, so to speak

warmi said...

"That Adobe could have figured out how to link to and use objects and functions from Apple's frameworks and figured out what to link to without some amount of reverse engineering just stretches credulity given how much of the iPhone's internals are not documented officially."

I am not sure I get this part.
There is nothing secret about linking with dynamic libraries and as long as one is only using publicly defined entry points ( in other words only using public APIs) I am not sure how couldthat be classified as "reverse-engineering".

Jeff LaMarche said...

Warmi:

Perhaps. There's also the matter of the "no derivative products" clause. It's in the same section of the SDK agreement that prohibits reverse engineering. I think there's a darn strong argument that Flash CS5's iPhone generating ability IS a derivative product in violation of section 2.5.

I do not believe they could have created this without violating section 2.5 of the SDK agreement in some way. I'd bet good money that they've violated both the no-reverse-engineering clause and the no-derivative-products clause, but it only takes one.

And, remember, Apple doesn't have to prove it to get into court, all they need is a good-fath belief that there was a violation to get into discovery. Once they get there, then they can find out for sure, because Adobe will have to disclose tons of stuff I'm sure they don't want to disclose, regardless of whether they did anything wrong..

Tom Frauenhofer said...

entitlement as much as it is an act of the need for Adobe to survive

I agree that they look at it that way, which is why they seem to feel justified. I don't agree that it is actually a valid justification.


I agree, this is not a valid justification. There's a bit of a feel of desparation in Adobe's part. Desparation causes you to act stupidly sometimes - I think this is the case here.

While I appreciate the points you're making here, IMHO it's really not relevant to this discussion. Business is not fair.

I hate the whole "business is not fair" schtick. That's the thinking behind Enron and countless other problems in our country's history.


Invoking Enron here is a little Godwin-esque for a reply, don't you think? :-)

Having been developing mobile applications for over a decade, I'd love to see some other way to describe fairness and business.

My point really was if some amazing way to code a whole bunch of apps using XCode and some super-whiz-bang approach came along and filled the pipe in a manner equivalent to recompiling flash apps using CS5 (which probably won't work as easily as Adobe hopes, thankfully!).

(You know, come to think of it, I wonder if or how well the Adobe toolchain can integrate with tools like the iPhone Simulator - I bet you these things will be painful to debug, although I could be wrong here - and not being able to debug will increase the crappage level of these apps.)

(And if Apple can tell easily, I bet you they create a tool that sniff this out for their app reviewers, or that they add this tool to the submission pipeline and have it reject the flash-based apps without human intervention - that would help with the pipeline issue immensely.)

K. A. Barber said...

Technical

Agreed! The likely hood of as good as native is low. I fear though that once the market is flooded with Flash apps the general user will just chalk it up to system limitations.

Logistical

This is my greatest fear. The App store noise will grow by leaps and bounds. If there are like flash apps that are already in existence and it is faster to port than create new we are gonna see a lot of old. I started to develop on this platform to be an indie that can make/grow a few really cool application while making a little money and getting a little recognition doing it. I spend a long time playtesing and tweaking I am now afraid that by the time I am ready to release I wont be able to shout loud enough to be heard.

Equitable

Things are never fair or equitable especially when money is concerned. That said I do believe it would be in Apple's best interest to protect the valuable resourse of native application developers from this onslaught initially. This initial burst of applications wont hurt the existing larger development houses with marketing budgets and employees. However the just starting out guy with a killer idea, talent and time will have to think twice about releasing his high quiality but yet unheard of kill app during the burst of flash apps that are going to hit the app store.


Political

Desperate and underhanded to say the least, but when it comes to the type of revenue they expect to generate they are OK with hit to there "good name". It is a total M$ move. Yes it is rude and pushy but I don't think they care. The general user wont care either.

Legal

This is where the Apple should be all over them. I am suprised there has been no response. Maybe Apple only cares right now about the money the new apps will bring to them through the store. If they thinks its a fit for there business model then they will allow uncontested entry. I personally think that Apple gets money all the way around from the current requirements to enter the iPhone market. I know plenty of guys who only bought Macs to write iPhone software but now love there Apple machines.

This whole thing is quite strange. I have used flash in the past, don't mind the tools and could easily transition to that type of development but for a device like the iPhone I want access to every bit of processing power and memory I can get because I know resources are limited. This means putting my hammer down and pulling out my other tools.

Jeff LaMarche said...

Invoking Enron here is a little Godwin-esque for a reply, don't you think? :-)

Sure. I'm not above that. :) But it is the exact same mentality. Exactly. It's the "everything's fair in business" attitude that has caused a great many significant problems in our history, not the least of which was Enron. But it's one of those things that we all act like it's okay because everybody says it's okay. Everybody excuses it and acts like it's okay because they're corporations and there's nothing personal.

I don't think it's okay. If I don't think something's right, I'm not going to do it. I'm not going to do it for a client. I'm not going to do it for an employer. And I sure as heck am not going to make excuses for a megacorporation when they do something I don't think is ethical or right.

Jeff LaMarche said...

(And if Apple can tell easily, I bet you they create a tool that sniff this out for their app reviewers, or that they add this tool to the submission pipeline and have it reject the flash-based apps without human intervention - that would help with the pipeline issue immensely.)

If what they did with Palm is any indication, more likely, they'll just tweak the bundle loader or app launching code so they don't work rather than make the App Reviewer's use a tool.

Michael said...

"If what they did with Palm is any indication, more likely, they'll just tweak the bundle loader or app launching code so they don't work rather than make the App Reviewer's use a tool"

Well we know they already check the bundle when uploading an app (ever uploaded a debug version by mistake), so its not exactly difficult for apple to prevent even the submission of these apps.

That would be the easiest way for Apple to stop a flood.

K. A. Barber said...

"If what they did with Palm is any indication, more likely, they'll just tweak the bundle loader or app launching code so they don't work rather than make the App Reviewer's use a tool"

I don't think this is a matter of can or cannot but more a matter of will. Will Apple stop the flood or drink from it?

Matthew Frederick said...

Jeff, I do agree with what you're saying about Apple protecting its dedicated developers, that may well be in the company's best interest. They may want to reward or protect their loyal developers by preventing compiled Flash apps from flooding the marketplace, but if they do so it won't be in the name of fairness.

It was perfectly fair to assembly language programmers that compiled languages were invented, fair to procedural programmers that object oriented programming was invented, fair to all hand-coders that automation tools like visual interface builders were invented, even if it meant that their hard-earned skills became less important.

Abstraction, automation, and other coding shortcuts are simply technical achievements and I can't see them as being a matter of equability or justness.

Matthew Fabb said...

Technical - One of the developers who was part of the private beta for Flash CS5 said that apparently the speed of a Flash based iPhone application changed in leaps and bounds from build to build. So it's hard to gather what the final product will be like compared to native application with it being such a work in progress right now. Someone from Adobe tweeted that currently you get a minimum of 8.1 megs when compiling a Flash project to iPhone application and that this was way too big and they were working cutting down the overhead. Still, I imagine that porting 3D Flash games to iPhone applications is not the way to go, as while they are sliming down the overhead, there's still going to be some overhead. However, for some applications this extra overhead might be acceptable and not even noticeable.

As for debugging, Adobe apparently demoed breakpoints in the Flash debugger triggering from running the iPhone application.

Logistical - It seems that even without the Flash developers that Apple has really dropped the ball here and with the amount of money they are making from the App store, they really should invest more into their infrastructure. Perhaps this move by Adobe will force Apple to do what they should have done ages ago.

Equitable - I'm quite surprised at the attitude I've seen from some iPhone developers. This is the way the programming world has worked since the very beginning. Otherwise we would all be programming in assembly language. Toolmakers have always tried to create new and easier ways of developing applications for different platforms, especially popular platforms. Making tools is what Adobe does and there's nothing unethical about broadening a platform's reach. Just look at Adobe AIR, making it easier for web developers to create desktop applications, but don't compare to native C++ applications. However, beyond web developers creating desktop applications, it's now easier to develop for Windows, Mac and Linux.

While there are some who will develop from Flash just for the iPhone, I see a lot of Flash developers and companies happy about reaching ALL devices, instead of having to develop and target just one device. I was reading the other day on quirksmode.org about how there's currently 19 vastly different versions of WebKit mobile. Those who think HTML5 is going to take over Flash in the mobile world likely haven't tried to develop websites for mobile or taken a good look at comparison charts of the huge number of mobile browsers out there.

Political - Depends on whether Apple is happy with the increase in applications or gets upset with what Adobe's done, I can see it going both ways. Apple has always been quite protective and shut down competitors when they could, but they've often had business reasons behind them. As for entitlement, apparently Adobe.com gets 3 million iPhone users who end up on the Flash download page every month. Meanwhile Flash developers have been constantly asking about Flash on the iPhone, so often that Adobe came out with an official statement for their employees to refer to when asked. Entitlement or just responding to developers and consumers demands?

Legal - A number of people have logged about this, some who seem very convince one way and others another. So I guess we will just have to see how it plays out.

andy said...

Business organizations have to realize the fact that many people just click away to some other website, because the website they are looking at is not professional looking or is not interesting enough. Only a well designed website can serve the purpose of its existence.
Once the website is designed up to the mark, then comes the role of SEO because a well designed website won’t serve it’s purpose until and unless it has a good search ranking. Globally India is the most sort after for such solutions. There are many companies in India that provide solutions for web designing ecommerce and website seo development and in their race of being the best Virtual Studio is leading the way.

Confuzzled said...

Being an iPhone and flash dev myself, I figure I should put my two cents in.

I really don't like the the idea of flash cs5 allow newbie flash devs to create iphone
apps with the click of a button.
It's kinda like C++. We used to have machine language, then assembly language.
Someone came along and said, "Heck, we should make this easier!" I'll invent a compiler.
He invents a compiler. Great idea. Saves time for experienced assembly language programmers.
However, years go by and noob c++ programmers say, what the heck is a calling convention, who cares
about the stack, etc. C++ programs get bloated cause its so dang easy to build stuff quickly.
Programmers are so buttery these days, they think C is hard core!
"It's close to the metal!" they say proudly.
Java comes along..

Abstraction, abstraction, abstraction....

Adobe builds flash. Great for the web platform. Standard. Reduces broswer support issues.

But for a native app for a mobile device? Heck no! Its only for the web!!
The iPhone SDK is already really darn easy. I've never seen an IDE as integrated as XCode.
I barely know I'm using GCC. Objective-c is really easy too.

Flash developers need to stay on the
web. Would you write an OS in python? Heck no.
If we make it too easy for ignorant
people to create bloatware, the app store is gonna sink just like Microsoft's windo-bloat.

This isn't a matter of fairness. It isn't a matter of preformance. It's a matter of knowledge.
If we build a generation of developers that are all abstracted away from the iPhone, its gonna cause trouble.
What's next, drag and drop iphone development?
Apple has built the SDK and by building it, has already decided the level of abstraction
for development for their device. I don't think they're going to like adobe doing this.
It's not Adobe's choice to set the level of abstraction, that's Apples.
Flash needs to stay on the web. It shouldn't be converted to native apps.

Mikko said...

Confuzzled, I think you're spot on. iPhone, and most other devices for that matter, are platforms of their own with different design conventions. Abstracting those conventions away in the name of cross-platform functionality is playing for the lowest common denominator and ultimately degrades the user experience for everybody. Given that the most compelling feature of the iPhone IMO still is the user experience, Flash-made Apps are almost certain to degrade the total user experience and be bad for the iPhone platform.

creole said...

Jeff...

As an existing Flash (Flex) developer, and aspiring XCode developer, the thought of being able to leverage my existing abilities and skills is a VERY tasty notion.

If you feel this way about Flash on the iPhone, how do you feel about some of the other frameworks developers are using to build iPhone apps? Unity 3D, PhoneGap, Corona, and NimbleKit?

I'm not trying to be antagonistic, I'm genuinely curious.

By the way, I have the grapefruit book and love it.

Erik said...

Love the book, (generally) love the blog, but honestly, get over it.

nick said...

Talk about a sense of 'entitlement'.

I've been a mobile developer for a lot longer than Apple has been in this game and it's not like there isn't a precedent for this. Native apps have been competing against J2ME apps on both Symbian and Blackberry for years. Often I can't even tell for sure which is which and I know most users won't.

There will be apps which make more sense to go native: ultimate performance, access to the newest apis etc. Native will always rule in these cases.
But for certain classes of application, which don't need the performance, or the APIs which Adobe haven't yet made available to actionscript - these could be more quickly, cheaply, safely, and dare I say more creatively developed in a managed environment like Flash. If a user can't tell what tech was used to create an app then who cares? I don't think Apple will.

They still have their stranglehold on the marketplace. Everything goes through their app store. 30% of a Flash app is the same as 30% of something built in xcode.
Apple doesn't need to worry about the volume of apps hitting the store, that's more developers paying more cash to join the program. They can just hire more reviewers. Users needn't fear the rubbish - the design of the store ensures that the cream rises to the top.

The best iPhone devs have an amazing future ahead - creating the best cutting-edge experiences with the best mobile tech on the market.
Everyone else, who are currently milking their corralled herd of premium customers better watch out. The walls are coming down.