Daniel Eran Dilger
Random header image... Refresh for more!

An Adobe Flash developer on why the iPad can’t use Flash

Daniel Eran Dilger

Morgan Adams, an interactive content developer who knows a lot about building Flash, wrote in with an interesting perspective on Flash and the iPad. The remainder of this piece is his comments on the subject.

Inside Apple’s iPad: Adobe Flash
.
I’m biased. I’m a full-time Flash developer and I’d love to get paid to make Flash sites for iPad. I want that to make sense—but it doesn’t. Flash on the iPad will not (and should not) happen—and the main reason, as I see it, is one that never gets talked about:

Current Flash sites could never be made work well on any touchscreen device, and this cannot be solved by Apple, Adobe, or magical new hardware.

That’s not because of slow mobile performance, battery drain or crashes. It’s because of the hover or mouseover problem.

Many (if not most) current Flash games, menus, and even video players require a visible mouse pointer. They are coded to rely on the difference between hovering over something (mouseover) vs. actually clicking. This distinction is not rare. It’s pervasive, fundamental to interactive design, and vital to the basic use of Flash content. New Flash content designed just for touchscreens can be done, but people want existing Flash sites to work. All of them—not just some here and there—and in a usable manner. That’s impossible no matter what.

All that Apple and Adobe could ever do is make current Flash content visible. It would be seen, but very often would not work. Users would hate that broken promise much more than they hate gaps in pages, missing banner ads, and the need to download a game once from the App Store instead of re-downloading it every time they visit a Flash game page.

Mouseover examples:

* Video players where the controls appear on mouseover and hide otherwise. (This seems to be the norm, in fact. Whereas a click on the same video does something different: usually Pause. Try Hulu for instance.)

* Games where you steer with the mouse without clicking (extremely common).

* Menus that popup up subpage links when you mouse over a main button, vs. going directly to a main category page when you click.

* Buttons that have important explanations/summaries on mouseover, which you need to understand before deciding what to click.

* Functions that use mouseover to preview and click to commit; such as choosing hair colors for an avatar: you mouse over the colors until your character looks the way you like, and then you click to commit.

* Maps and diagrams that don’t use click at all, but pop up info as you mouse around.

* Numerous other custom mouseover functions that “just work” with a mouse and need no explanation.

None of these things can work right with a finger (or traditional stylus) because on a touchscreen, pointing at something without clicking isn’t a mouseover: it’s just holding your finger vaguely in the air. The device doesn’t even know it’s happening.

In addition, some Flash sites rely on right-clicks (such as for security settings), and many rely on a physical keyboard. Especially games, which are the main kind of content people want from Flash. (I’d say video, except video can easily be done without Flash, and sites are increasingly doing so. Much of the video missing from your favorite Flash site is probably easily found on YouTube anyway.) Games often use realtime key control, requiring a distinction between a single press and a long hold, and including the need for chording. For instance: holding right arrow continuously to walk, while simultaneously hitting the space bar to fire, and either hitting up-arrow once to jump or holding up-arrow longer to jump higher. A touchscreen keyboard can’t handle these kinds of rapid, precise combinations well. And the keyboard would block the game view, too. Games on a touchscreen need controls suitable for a touchscreen (and/or tilt).

The only potential “solutions” to the mouseover problem are terrible ones:

A) The best case: every Flash app on every site is re-thought by its designers and re-coded by its programmers (if they’re even still available), just for touchscreens. They wouldn’t use mouseovers any more—or else they’d have dual versions of all Flash content, so that mouse users could still benefit from the mouseovers they are used to. That’s a ton of work across the Web, for thousands of parties, and just isn’t going to happen. Plus, with many sites, mouseovers are so fundamental that the very concept of the site would be altered, creating a whole different experience that would annoy and confuse the site’s existing users. (And would this be any easier than simply re-designing without Flash at all? Not always.)

B) Gestures, finger gymnastics or extra physical buttons are created that simulate mouseover—which is absurd since mouseovers, by their nature, are meant to be simpler than a click/tap, not more complex. And meant to be natural, not something new to learn. Not a whole set of habits that violates our desktop habits. And any additional complexity is unworkable when it comes to games: you need to react quickly and simply, not remember when to hold the Simulate Mouseover button, or use three fingers, or whatever. The game itself is enough to deal with. Anything on top of that takes away fun.

C) Make clicking itself—the fundamental, constantly-used action—MORE complex. Such as requiring a double-tap or two-finger tap before anything is registered. (Two taps is how Mobile Safari does JavaScript popup menus: the first tap pops it up, the second selects.) But many Flash apps and games already use double-click (or rapid-fire clicking) for other things. Extra taps only make sense for certain limited situations (like menu popups). And it’s not just clicking: you have to allow for movement: dragging vs. a moving mouseover. And even if a system could be created that was quick and simple enough to do all this in the middle of a game, how would the user know which parts of a web page played by these special rules? One part of a page (the Flash elements) would do fundamental things like scrolling or link-clicking differently from the rest of the page! (Not to mention the rest of your touch-based apps.)

D) Have a visible mouse pointer near your finger, and not interact with things directly. Use Apple track-pad style tap-and-drag gestures, as seen in some VNC clients. This kind of indirect control violates the very principle of direct touch manipulation. This is making the touchscreen be something “like a laptop but worse” and has little reason to exist. And again, you’d have to keep remembering whether you were in direct touch mode or “drag the arrow” mode, and which parts of the page behaved in which way.

E) Require extra force for a “real” tap. So you’d have to learn habits for a light tap vs. a hard tap. This extra complexity is non-intuitive, cramp-inducing, and easy for the user to get wrong (even with click feedback, as in RIM’s failed BlackBerry SurePress experiment). This complicates the whole device just for the sake of one browser plugin, and makes it more expensive to build.

So it’s not just that Apple has refused to support Flash. It cannot, logically, be done. A finger is not a mouse, and Flash sites are designed to require a mouse pointer (and keyboard) in fundamental ways. Someday that may change, and every Flash site could be redesigned with touch-friendly Flash. But that doesn’t make Flash sites work now.

Even if slow performance, battery drain and crashes weren’t problems with Flash (and they truly are), nothing can give users of any touchscreen, from any company, an acceptable experience with today’s Flash sites. The thing so many complainers want is simply an impossibility.

By the way, imagine my embarrassment as a Flash developer when my own animated site wouldn’t work on the newfangled iPhone! So I sat down and made new animations using WebKit’s CSS animation abilities. Now desktop users still see Flash at adamsi.com, but iPhone users see animations too. It can be done.

Morgan Adams, adamsimmersive
interactive design and games

  • Gophero

    @miloh
    Goodbye :)
    Although I would have liked to know your own subjective view of the browsing experience on the iPad from what we’ve seen of it.
    Maybe I shouldn’t post comments when I’m tired and irritable but I had to find something to procrastinate with.

  • ChuckO

    Gophero 144, “Magical and Revolutionary” was a poor choice as far as I’m concerned. It’s the hard sell which is unusual for Apple. I think it shows a little of Apple’s insecurity about the how to sell a new product type.

  • http://www.hd1080i.com hd1080i

    whaever – this did divert from iPad touchscreens in general…

    But All touch devices have this issue — it is important –so I did more tests and Dan is correct, and not just for win7 HP Touchsmart, but also for the touchpad behaviors on 4 of the 6 laptops in our lab. The fact that CTNdigital can code to satisfy touch systems is not relevant. Its the general case of the web that is relevant.

    Though its not hard to make everything work properly for all cases, Dan’s observations are right – Its doable — not happening enough now, and will require a massive re-do for much of the existing Flash hovers and drag/scroll out there.

    Developers should be glad for that – more work, easy work, copy paste some extra code and its done. I would hope all of us also prefer best practice code and not whats out there now … were i hiring a design developer i would request the touchscreen interaction be satisfied ( and touchpad for that matter, and mouse scroll wheel, trackpad scroll strips. )

    All you need is in Flash CS4 and CS5. Lee will help with his stuff – http://gotoandlearn.com – they are good people doing what it takes and put extra effort into that. Mike was there helping us in were-here.com flash site back in the days before Adobe and i was a forum moderator there for an equally unruly crowd as i see here.

  • ulicar

    This is by far the stupidest explanation of why Flash should not be on iPad. I was expecting that you somehow reached the bottom, but then you pulled out a shovel and started digging. Amazing!

    If the mouse hover VS mouse click is the problem (?) then the JavaScript should not work either, but it does. Go figure!

    This was an amazing attempt of using something that doesn’t make any sense as an argument. Well done! Next time you could say “Flash should not be on iPad because leafs are green when on a tree”. That would make more sense than this stupidity.

    [Your argument would carry more weight if you actually presented one, rather than just gush hyperbole and call people names. If you have a point please articulate it in a rational way. Your comment just comes off as abusive, pretentious ignorance. – Dan]

  • anon

    @Gophero

    In light of the fact that lacking Flash has failed to stop over 60 million iPod Touches and iPhones from being sold…

    …I’d like to see you explain how Flash is even relevent. When you factor in the mediocre-to-flatlining sales of smartphones which actually do support it, it becomes mightily obvious that few people even care.

    The way you’re talking about the lack of Flash support as though it were a problem is puzzling, as the market has proven it clearly isn’t one.

    I’d also like to see you back up your claim that “HTML5, SVG, CSS, WebGL and Javascript all fall well short of providing the rich experience that Flash is capable of supplying”. Tell me what Flash does that isn’t pedestrian enough to be replicated using HTML5, SVG, CSS, WebGL, and Javascript.

  • kadajawi

    I haven’t read each and every comment, so sorry if the idea has been mentioned already.

    But what I’d suggest is that touching the screen where there is flash means hovering. You would probably do that with the index finger. Since Apple uses capacitive screens with multitouch support… use your middle finger to press onto the screen again. This means normal click. Use two fingers (-> 3 fingers touch the screen) means right click. The index finger (or whichever finger was used for the hovering) will give the location of the mouse pointer. It is not perfectly intuitive, but I think people can learn that pretty fast.

    Just think about the “wonderful” Mighty Mouse. Apple forced users to do something similar for the right click, just because Steve Jobs didn’t like the look of a second mouse button (or something like that). If Apple thinks it is ok for such reasons, then why not to let users use Flash?

  • http://wanderbook.com eddieclay

    The funny thing is about all this is that flash was an accident of history, the technology was originally developed on…yes, that’s right, a tablet running PenPoint in 1992 http://en.wikipedia.org/wiki/Jonathan_Gay

  • ulicar

    Ignorance? I am ignorant for calling your argument “mouse hover” stupid? For frick sake, JavaScript was built on mouse-hover, mouse-out, mouse-click… Claiming that for some reason there is an issue with mouse-hover or mouse-click, or mouse-drag (whatever that event is called in JS) than JavaScript would not work on iPhone, however, it does, and your argument appears stupid. Do you ever turn on the brain before writting something?

    Hey, if that is your game, than you can easily write “Flash cannot be on iPad because I do not like broccoli” It would actually make more sense. You like to claim direct opposite to what is obvious and somehow my argument is a pretentious ignorance? Claiming iPhone is multitasking and nobody can use that but Apple and claiming that mouse events are somehow an issue and that is already supported, that browser supports HTML5 when in fact it doesnt… is quite, quite, quite… I am lost for words actually. Well done!

  • ulicar

    P.S. I have just went to http://demos.telerik.com/aspnet-ajax/menu/examples/programming/clientevents/defaultcs.aspx which is quite heavy clientside menue and iPhone reacted to all events. ALL. Check it out, then say iPhone can’t do that and that is the reason Flash shoud not be in.

  • wizard288

    Personally, I really only want flash so I can watch TV shows through Hulu for free, instead of having to pay for them on iTunes. I know NBC has an iphone friendly site with full episodes, but most other networks don’t. If the other networks would come up with some ipad friendly full episode streaming system, I would probably buy an ipad. But otherwise, I will probably get one of the windows 7 tablets, like HP Slate, Archos 9, etc, on which you can theoretically install flash.

  • Gophero

    @anon 154
    These arguments are irrelevant. The iPhone and iPod Touch were never touted for their Internet browser experience as a major feature. When using a small screen it’s less upsetting to have a crippled version of the net.

    Sales of other smartphones also irrelevant. In a phone, it’s not a major feature, other features are going to sell phones. Also previous versions of mobile Flash haven’t always been terribly good. The new version Flash 10.1 is quite good though. Just because it wasn’t widely supported before doesn’t mean it wasn’t wanted – it simply wasn’t widely available.

    You say the market has proven this isn’t a problem but you are talking oh the phone market. The iPad is not a phone. It is a portable media consumption device, if you like, or a nice portable media and Internet browser.

    Much of the mundane stuff done in Flash can be replaced by other technologies but why should it? To serve the minority of users viewing content from iPads? That’s going to be a tiny fraction of all viewers to a web page. A web site is likely to still be getting more hits from IE6 users than an iPad any time in the next few years.

    The implementation of HTML5 is still well short of prime time as well. If you’ve seen YouTube’s HTML5 beta, for example, you’d know the experience is seriously short of the Flash experience. The HTML5 version can’t even go fullscreen with a video. This may improve in time but the iPad is launching pretty soon. The HTML5 web isn’t going to be there for it.

    The most media rich demonstration of HTML5 so far is a paint program (http://mugtug.com/sketchpad/). An example of media rich content in Flash is this (http://lux.lookbookhd.com). Can you pick the subtle differences?

  • gus2000

    I want Flash…to work on my desktop computer. Without spiking both CPU cores while doing nothing worthwhile. I’d also like Flash on AIX, where I can I download that? Hmmmm?

    I HATE the stupid mouseover actions. Highlighting a menu item under the cursor is a nice UI touch, but it can get quite hectic when all manner of submenus swoop in as the pointer travels. On some pages, there’s nowhere for me to rest my pointer so that I can read the actual content, forcing me to move the pointer to the corner until needed. Blech!

  • pf

    “Tell me what Flash does that isn’t pedestrian enough to be replicated using HTML5, SVG, CSS, WebGL, and Javascript.”

    Chatroulette for example. :)
    HTML doesn’t have video conferencing capabilities.

    And then there is the fact that javascript, just like actionscript 1, is a weak typed prototype based language. A joy to use as long as your programs remain small. But it quickly turns into nightmare as you try to do more complex stuff. Actionscript 3 is a strongly typed object oriented version of ecmascript which is much better suited for complex applications and team development.

    There is nothing wrong with Flash. It’s a powerful tool. The real problem is how developers use it. They need to be better educated in programming apps that use computer resources efficiently. Simply switching to HTML5 is not going to solve that problem and may possibly make things even worse.

    But more importantly: rather than just shout that HTML5 is better, actually start developing stuff with it today, and prove to the world that it is a compelling reason to abandon Flash. It’s pretty much the same way Flash replaced Shockwave in its day, even though the latter at the time was a lot more advanced.

  • Chipotle

    @Gophero: I generally agree with the idea that Flash could be made to run on the iPad and that one could make a business case for doing so. I don’t think Apple will do it, mind you, unless they decide to allow Mobile Safari to run third-party plugins.

    Having said that, I think you’re dead wrong about where Javascript and HTML5 are now, let alone where they’re going. Yes, your book demo with draggable items and video and all that is very pretty and sexy and oo-la-la and oh hey Google has been busy implementing an office suite in Javascript and HTML5. Microsoft Office it ain’t, but it’s certainly the equal of the attempts I’ve seen done in Flash to date. And for that matter, what about:

    http://9elements.com/io/projects/html5/canvas/
    http://boagworld.com/technology/great-demo-of-html-5-canvas

    While I’m aware you haven’t specifically said things like that aren’t possible without Flash, I get the impression a lot of people imagine that things like that, well, aren’t possible without Flash. They are. Really. Javascript is an ugly language in some ways, to be sure, but it’s very powerful; loose typing and prototypal inheritance are just different design choices, not inferior ones. There’s still a performance gap between Flash and Javascript, but as Javascript engines get faster and keep up with newer standards for the language, that gap is closing.

    At any rate, if a company really wants to produce a Flash game for the iPhone (or iPad), shortly they’ll be able to use Flash CS5 to compile an iPhone app — and if you’re talking about an application rather than an ad wedged into a web page, that’s really the experience you want. I suspect in practice this is going to be much more of a non-issue than people want to make it out to be.

  • kissmyawesome

    @pf – “There is nothing wrong with Flash. It’s a powerful tool. The real problem is how developers use it.”

    Well, there is nothing wrong with JavaScript. It’s a powerful tool. The real problem is how developers use it.

  • anonym

    You say my definition of “consumer unfriendliness” is ridiculous… So you see no problem with Apple prohibiting you from using any browser other than Safari on the iPhone (and now iPad)? Not to mention the countless other useful apps they’ve rejected. Few may care about GPL ideology, but enough developers do, and enough great software is GPL licensed that it makes no sense for a platform to prohibit it.

    It’s funny that you so eager to defend Apple. You do realize when Steve Jobs refers to Flash as a “legacy technology,” he’s referring to both mobile and desktop platforms, right? In fact, Steve’s complete dismissal of Flash is about the only thing he and I agree on.

  • olambo

    @ulicar

    If javascript uses a mouseover event , it won’t fire either.

    The comment about Broccoli isn’t really clever or funny. You appear to want to have a rant rather than add anything constructive.

  • Pingback: blog der polygonschmiede [ p13e ]()

  • Pingback: Flash is out of touch (devices, that is)()

  • Pingback: the bandwagon in the shape of flash’s coffin « Boff.se()

  • anon

    @Gophero
    “These arguments are irrelevant.”

    I think demonstrating that Flash support isn’t a deciding factor to a majority of people when they’re faced with choosing what product to buy, is pretty relevent to the debate on how important Flash is.

    “The iPhone and iPod Touch were never touted for their Internet browser experience as a major feature. ”

    Damn. Let me pause for a minute while I take in the vast dishonesty of your comment. The iPhone and iPod Touch have had their internet browser experience touted as a major feature since the day Apple unveiled them.

    Here. These are snapshots of Apple’s website from and January 11th & September 7th 2007(use Select All on the iPhone page so you can read the, uh… Super awesome white on white text):
    http://web.archive.org/web/20070111091833/http://www.apple.com/iphone/
    http://web.archive.org/web/20070907135426/http://www.apple.com/ipodtouch/

    But hey, you can be excused for not remembering how internet browsing was touted as a major feature of the iPhone and iPod Touch back in 2007, though, right? I mean, come on. It was 2007!

    …Except Apple has *continually* touted the iPhone and iPod Touch’s internet browsing experience as major features. Which you say they’ve never done, which is wrong, which you can’t possibly not know. Heh. Is that irrelevent, too?

    “When using a small screen it’s less upsetting to have a crippled version of the net.”

    There’s a magic treshold for screen size where lacking Flash becomes an actual problem instead of a non-issue, and the poor iPad crosses it? Woah. That’s so uncontrived it’s scary.

    “Much of the mundane stuff done in Flash can be replaced by other technologies but why should it?”

    I asked you to explain what Flash does that can’t be replicated in HTML5, SVG, CSS, WebGL and Javascript. Don’t try to evade the question by changing the subject to “But WHY should Flash be replaced?”.

    “The most media rich demonstration of HTML5 so far is a paint program (http://mugtug.com/sketchpad/). An example of media rich content in Flash is this (http://lux.lookbookhd.com). Can you pick the subtle differences?”

    Are you kidding me? The paint program is leagues more complex and does far more than that LookBookHD thing, which is nothing but some cheap animations and video tied together with another, slightly less cheap page flipping animation. It’s a perfect example of an unremarkable Flash app. Everything it does is completely mundane and replacable with other things, like HTML5. Most of it could even be replaced with SVG alone.

    So you just proved a point. But I don’t think it’s the one you thought you were proving.

    As an side, LookBook was worth it just to see that bamboo Dell concept. It’s so beautiful I could cry. Then I remember it’s a *Dell*, and I could still cry. But for different reasons.

    @pf
    “HTML doesn’t have video conferencing capabilities.”

    http://www.whatwg.org/specs/web-apps/current-work/#devices

    “There is nothing wrong with Flash”

    Well, there’s nothing wrong with certain aspects of Flash. But there’s a lot of things wrong with the Flash plugin itself. A lot. Some of the worst ones can’t be solved just by better programming, either.

  • timkindberg

    @Gophero please stop posting that horrible example of flash. :P I love that you are arguing for our cause but that is a tacky example.

    I love Flash. It is SO fun to develop with and amazingly intuitive. I don’t always love to use it though on the web, especially when whatever game or app I am playing with is developed poorly. I will admit that I’d most likely rather use a AJAX developed application like Google docs. BUT there have been multiple times that I’ve used a Flash app and didn’t realize right away that it was flash, because it was so solidly built.

    I have nothing but love for the platform.

    Here are some good examples of flash where I haven’t seen (yet) the same from HTML5:
    http://ecodazoo.com/
    http://www.us.playstation.com/flOw/ (this was originally a flash game but I guess it’s now only for console)
    http://imakemycase.case-mate.com/
    http://www.chatroulette.com
    http://machinarium.net/demo/

    Please, now show me examples of HTML5 that top that list. That is just a few examples. I don’t have the time to find that absolute best, but these are damn good. Seriously shut your traps on how Flash sucks.

    I’ve got 5 tabs open right now on my Windows XP SP2 machine in Chrome:
    – Gmail: (using 86MB of memory)
    – 3 Flash sites—Jim Carrey – official site, Machinarium, The FWA: (using 112 MB of memory COMBINED)
    – This web page (26MB of memory, fyi)

    The 3 flash sites use an average of 37MB and are doing lots of rich interactive stuff. It all runs just fine. I agree Adobe needs to get the flash player working better on Macs, that’s just embarrassing, but Apple is NO HELP whatsoever, they continually ignore Adobe.

    Much love for Flash. (I’m ready for the “Well why don’t you marry it?” jokes)

  • roflmao

    So it is obvious that you are on Apple’s payroll. How much are they paying you to spew painful ignorance like this?

    [if I were on Apple’s payroll I’d have better production and wouldn’t ever say anything controversial. But if you want to talk the company into funding me in any way, knock yourself out – Dan]

  • Pingback: Impact of Touch on WebApps | CloudAve()

  • miloh

    @anonym:

    “So you see no problem with Apple prohibiting you from using any browser other than Safari on the iPhone (and now iPad)? Not to mention the countless other useful apps they’ve rejected.”

    These things are only a problem if they present an actual limitation. If someone doesn’t need anything other than Safari, if someone has no use for any of those rejected apps, then it’s a non-issue for them. I think one of the main problems with the iPhone/iPad backlash is an overestimation of just how many people in Apple’s target market really care about such things.

  • Chipotle

    @miloh: That’s an important point that I think a lot of people miss. We hear about high-profile cases of App Store rejections, for instance, but we don’t hear much in the way of statistics: what percentage of apps are rejected from the App Store for non-technical reasons? How many of those get accepted on subsequent submissions? My suspicion is that it’s actually a pretty small number. And more to your point, I suspect the majority of iPhone users are not, in fact, in revolt over the lack of a native Google Voice client, or the lack of a Firefox build for the iPhone.

    I’m somewhat critical of the App Store — as I’ve written before elsewhere, I think in the long run the “One Store To Rule Them All” approach simply isn’t scalable and it’s in Apple’s best interest to open it to some degree — but I’m also realistic. A lot of people strenuously complain about Apple not making a headless iMac or a netbook or any number of products they don’t make that are ostensibly holes in their lineup, but every quarterly analyst conference call when someone asks about that, CFO Peter Oppenheimer responds, “See my hat? It’s made of money!” (I’m paraphrasing, of course.)

  • miloh

    @Chipotle:

    Perhaps it’s their very success that is so upsetting to people. Apple seems to be focusing on a particular segment of the market, and by definition that means some are excluded. But to have them be successful says not only are these people left out, they’re also not missed. I can see how that might be perceived as insulting, but only if one desires to be part of the group.

  • stefn

    Apple is doing what any sane company would do when it is handed the unbelievable opportunity to define a new GUI, which is what multitouch is. Flash freaks better direct their whining to those (Adobe, Microsoft) who had to see it coming and didn’t lift a finger to move themselves or their developers toward the light. Otherwise, shut up and let Apple move on. Apple’s the one taking the risks; it’s not whining like Adobe is; it’s not asking flash folks to do anything different.

  • tonortall

    It seems to me that the rationale behind this particular dismissal of flash is pretty thin.

    The continual theme is that existing flash content won’t work on a touch paradigm because of hover state. Ergo, flash has no place on a touch screen device.

    Leveraging a hover state is not any inherent issue of Flash. At all. Adobe does not put a gun a to a designer’s head and decree that you must maximize the use of hover state. It is purely a design decision. You may have a point about existing content not being compatible, but that’s something that would be true of any content developed that leverages a hover state. Hint: Flash is not the only that technology that exposes this state.

    You may also have a point that if you redevelop, you may as well use HTML5 where it makes sense to do so. I see two problems with this approach. Firstly, well written code of any kind should be able to be modified to deal with the lack of hover state. Thus fixing the existing the code should, in the ideal case, be – if not a trivial matter – easily handled. In any event, if the code was sloppily written, a good deal of the existing content could be reused: you would not be reinventing the wheel. Secondly, to redevelop the content using compatible technology requires one to learn a new language. So there’s a learning curve to that and the attendant lead time and considerable extra effort to regenerating content that was already in existence. Are there, for example, any high quality HTML5 content production software suites in the wild? I do ask as an honest question.

    In short, the issue for me in this article is that you’re conflating the content produced with the tool used to produce it. It’s like saying “Ban guns because there are nonsensical idiots out there who kill people”. Again, you may have a point about *existing content* but it’s not Flash producing existing content. It the people that use the product that do so, and existing content is not the sole domain of Flash.

    I have no vested interested in the outcome of this issue. Few of the sites I visit use flash in any meaningful way to me (I don’t play games for instance) but there are other avenues to dismiss flash which are already covered – so there is no need for rebuttal on performance, proprietary architecture, etc. It’s all been heard before.

    You can’t blame Flash for the output of people that build content through it any more than you can blame html for some of the abominations you see on myspace and so forth.

    BTW, your comments to post 83 strike me as odd. Firstly, you tell the poster to chill, then imply that they are not able to think rationally. Then you go on to talk about flashtards and, on the whole, get pretty defensive. You can see that attitude prevail through several of your subsequent replies. It seems you’re quite emotionally invested in this debate – this can cloud rationality. Disagreeing with your opinion is not being irrational. It’s called having an opinion, and as long as you keep your pages open to public comment, you’re going to get them.

  • dazweeja

    Dan, you keep repeating the fact that HTML5 must be better because anyone can optimise the browser. But with Flash, anyone can write a better Flash player because the SWF spec is open (though not ‘open source’). Obviously you’ve heard of the Open Screen Project which was Adobe’s effort to enable this? In fact, the only difference between the two technologies in the real world is who you feel is more likely to change the spec if you feel it is deficient, in the case of HTML5, it’s Ian Hickson/Google, in the case of Flash, it’s Adobe. My experience doesn’t lead to me to believe that the answer to this is clear-cut.

    [In addition to changing the spec (HTML5 is lead by industry consensus, which includes Adobe — incidentally, which Hickson reported to be holding up elements of the HTML5 spec in preference to Flash through procedural delays, despite Adobe’s insistence that it isn’t), there are other issues.

    Sure, Adobe launched an initiative to get people to support Flash playback. But who is going to deliver implementations of the Flash player in a way that’s going to work, consistently, and over time as Flash continues to evolve at Adobe?

    Flash advocates harp on how Adobe can provide a more consistent platform than the variety of web browsers out there, but now they’re arguing the opposite in regards to Open Screen. Which is it? Do implementations of open standards work or not?

    Safari/Safari Mobile/Chrome are proving that they can. Where’s your evidence that Open Screen is going to fix the mess of the Flash platform, where Adobe can’t even deliver its own runtimes across platforms that all work? Flash only works well on the Windows PC desktop. HTML5 already works well across a variety of different vendors and across desktops/MP3 players/smartphones and now tablet systems with the iPad.

    You can’t FUD the idea of open standards and then say Adobe has the bases covered with Open Screen, because it clearly doesn’t, and those ideas are completely contradictory anyway. – Dan]

  • miloh

    @tonortall:

    “You can’t blame Flash for the output of people that build content through it …”

    “… well written code of any kind should be able to be modified to deal with the lack of hover state.”

    I would have to agree with this. In fact, one could generalize and say that any good design should be able to accommodate relevant changes in the market.

  • Extensor

    I can imagine that when the automobile first appeared, people were like, can you make it so my horses can be hitched to the bumper?
    These comments about Apple bending over backwards to hack Flash into the user experience crack me up!

  • http://wanderbook.com eddieclay

    To those who say “The iPhone and iPod Touch were never touted for their Internet browser experience as a major feature.” – well, this hits the nail on the head, right into their head and out the other ear that is.

    First, did you notice the “i” in the iPhone and iTouch name?

    Yes you are right this is not about a “browser experience” and that’s the point. The iPad is not about a “browser experience” as we know it on desktops as well, its about being another way to experience the internet. Apple says a “better way”, we’ll see.

    But the point is its another way, and certainly a “better way” on the iPhone for many things. If I go to Disney.com on my iPhone, I get a better experience than the flash web page I get on a desktop browser *for when and where I need it*.

    Forget the desktop browser model. Look at iPhone “apps” . You do realize “apps” on the iPhone most often are Web/Internet experiences? And even through the safari on the iPhone many pages feel like iPhone apps now…the magic of css.

    And yes, it was and is touted as so.

    The iPad has more screen real estate than the iPhone, that means you think it should work like a desktop. You don’t get it, and therefore shout out ad hominems against those who try to explain it.

  • dazweeja

    @Dan, I’m sorry but your comments regarding the Open Screen Project don’t make sense. By allowing anyone to implement the SWF spec, the goal is to get Flash to work consistently across as many devices as possible. It’s not “arguing the opposite in regards to Open Screen” as you suggest. Getting Flash on WebOS (Palm) is a good example of the Open Screen Project at work. All other smartphone manufacturers (bar Apple) are following suit. I use Flash everyday on my Mac with no issues (I know that others have them though for some reason) and Flash 10.1 is much faster due to it’s use of CoreAnimation. It would be even faster if Apple would allow access to OpenGL and GPU decoding of H.264 but don’t hold your breath. Flash on OSX is only as fast as Apple will let it be.

    No-one is suggesting the SWF spec itself is open like HTML5 but Adobe as a company does listen to it’s customers (though not perfectly). Dropping the Fx prefix in Flex 4 in response to developer concerns is a good example of this. If open standards are so wonderful, why has CSS positioning always ignored the needs of designers? When the CSS1 spec was ratified, the most popular design paradigm on the web was three-column/fixed sidebars/fluid centre content/equal height columns. No one called it the ‘Holy Grail’ then because it was trivial. Implementing this in tables takes 2 minutes, implementing it in Flash/Flex takes 2 minutes, implementing it in pure CSS takes an intimate knowledge of negative margins, hours of testing across all browsers, a sick sense of humour and a bottle of aspirin. I’m sorry but the CSS spec outweighs IE6 as the greatest disservice done to the web, as at least IE6 was useful in its time. Flex positioning (relative, absolute, constraints, advanced constraints, vertical or horizontal positioning, etc) is a good example of what CSS positioning should be. Any design you can think of can be implemented easily using this system.

    Finally, do you really believe that HTML5 is not being driven by the editors (Google and Apple) for their own purposes? And what about WHATWG who are also working on the HTML5 spec? This is from their FAQ, “This is not a consensus-based approach — there’s no guarantee that everyone will be happy! There is also no voting”. Hmmm…

  • nednarb
  • timkindberg

    Ok, obviously there are great reasons on both sides. I am a flash developer. If flash is going to die, oh well. I would be sad to see such a lovely language, Actionscript 3.0, go with it. Its a shame that the flash player plays so horribly for so many (for me it always works amazingly well, but I am on PC). I absolutely love how expressive it is and how many tools the language gives you. I’m not looking forward to moving to JavaScript, but hopefully that language will improve with ECMAScript version 4.

    This article’s main point, however, is wrong. Flash won’t work on multi-touch, because of hover events? Wrong. I’m sorry, but even if flash haters can tout some very good OTHER reasons, this particular reason is horrible. I could easily make my own blog post called “Why AJAX applications won’t work on Multi-Touch devices”, copy all of this article’s text, and simply Find and Replace ‘Flash’ with ‘AJAX’.

    Look if you want to make a charge for why Flash sucks, fine, but don’t resort to nonsense.

    Still I appreciate and respect the time it took you to write the article and get a great argument started.

  • http://www.hd1080i.com hd1080i

    Re Gruberball:
    That guy drives me nuts, he is too close to his own stuff to see past it.

    One example anyone with experience can verify about flash crash = doubleclick code usually crashing flash advertising
    debug in this very website ( its a Nissan car hightower ad ) shows:

    TypeError: Error #1010: A term is undefined and has no properties.
    at classes::CShared$/get_val()[D:\Projects\Coockies\src\classes\CShared.as:62]
    at classes::CExternal$/eget_cookie()[D:\Projects\Coockies\src\classes\CExternal.as:49]

    at flash.external::ExternalInterface$/_callIn()
    at ()
    at flash.external::ExternalInterface$/_evalJS()
    at flash.external::ExternalInterface$/call()
    at classes::CExternal$/showInit()[D:\Projects\Coockies\src\classes\CExternal.as:38]
    at SetIntervalTimer/onTimer()
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

    Ok so maybe I have tools the average user doesn’t know, but still its badly managed flash datatracking roundtrips with timed code that crash and hang browsers. I cant even go into the likes of eWeek.com with firefox 3.6 due to timeouts … “Not Responding” is a likely outcome. if you follow the trail it leads to ads.doubleclick.com owned by google in a lot of cases. Hence: flash is just the abused tool. It looks like DarkAges “shoot the messenger” nonsense to someone that knows whats really going down — banning flash in total is not the correct answer. Flash Ads should be banished, not flash the plugin… i would fully endorse HTML5- only advert treatments.

    I could go into more detail but I sense much of the chatter here is not from developer level experience or expertise.

    Personally i would like to see a headline stating “FLASH ADS CRASH BROWSERS FROM BAD TRACKING DATA HANDLING”
    This would be the real useful underlying truth.

    Also, Dan is doing the planet a favor buy REPORTING clearly whats going on, it is Mr Adams that made these claims and he is absent from this conversation from what i can tell. We need more rational people like Dan doing reference quality work on this.

  • iHuman

    You might want to check this out…sounds like touchscreens and gestures are an option in Flash. http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/events/GestureEvent.html

    [You’re missing the point. It’s not that Flash can’t be used to create content that will work on a touch device, but rather that all existing Flash content assumes a mouse, and therefore isn’t good on a touch screen. It’s an installed base problem.

    There’s no point in starting over using Flash going forward, because it offers nothing but a proprietary lock with Adobe. Why not use the App Store, which does have an installed base and a business model and a lot of hungry customers on the iPhone (none of which Flash has).

    Adobe’s argument for Flash is that everyone is using it and it has 95% installed base on devices and that there’s lots of content everywhere. The problem is, none of that is relevant on a touch device like the iPad, where it can’t run and exiting content isn’t any good anyway. – Dan ]

  • gus2000

    Well, look what just happened to me:

    The application Safari has quit unexpectedly. The problem may have been caused by the Flash plug-in.
    Process: Safari [26236]
    Path: /Applications/Safari.app/Contents/MacOS/Safari
    Version: 4.0.4 (6531.21.10)
    Build Info: WebBrowser-65312110~2
    Code Type: X86 (Native)

    PlugIn Path: /Library/Internet Plug-Ins/Flash Player.plugin/Contents/MacOS/Flash Player
    PlugIn Identifier: com.macromedia.Flash Player.plugin
    PlugIn Version: 10.0.45.2 (1.0.4f348472)

    Exception Type: EXC_BAD_ACCESS (SIGBUS)
    Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000084
    Crashed Thread: 9

  • timkindberg

    Dan, can you tell me how/why Javascript and HTML pages with hover events will work, but Flash with hover events will not? Why is that? Please can you answer this question?

  • Chipotle

    Tim: I’ll refrain from going “ooooh can I can I can I tell you tell you tell you.” Except for, y’know, right then.

    I assume by “hover event” you mean mouse events, which is what Javascript actually has. And darned if there are in fact no mouse events on the iPhone. Javascript has onTouchStart, OnTouchEnd, onTouchMove, onTouchCancel, onGestureStart, onGestureEnd, and onGestureCancel events instead.

    So by bringing this up you’re actually kinda supporting Dilger’s case here, not undermining it.

    I’m just saying.

  • timkindberg

    @Chipotle Really? Well, I have to point out that all those awesome touch events are not native to Javascript, at least not that I could find, I could be wrong. They are native to the iPhone. So if existing content doesn’t support those events, why would it magically work on an iPhone? Couldn’t you argue that you would have to rebuild ALL JavaScript applications to support multi-touch, just like Dan said we’d have to rebuild all Flash apps? Also, simmer down man.

    @Dan: I was seriously interested in how Flash wouldn’t work while Javascript would. I actually wanted to know. I wasn’t being sarcastic or anything. I’m confused because mouse events are basically the same in JavaScript and Actionscript. So I would assume they work the same, hence they would be subject to the same handicap on a multi-touch platform.

    I wanted to know how or why Javascript works without any issues on multi-touch, while flash’s Actionscript doesn’t.

  • Chipotle

    @timkindberg I promise I’m not simmering much. I shall, however, promise not to goof on things this time. :)

    Actually, yes, there’s a good chance you’d have to rebuild some Javascript applications to support multitouch. The cheating sneaky way out here is simply that there’s all that much Javascript doing really serious lifting out there. The most popular event to link something to is (naturally) onClick — and of course, that would work just fine, as would dragging and dropping, as those aren’t exclusively mouse events. Also, a whole lot of Javascript on web pages is doing stuff behind the scenes, like form validation and XMLHttpRequests and other things that don’t really care about the UI at all; Flash, however, is all about the UI, so by its very nature it’s going to run into the cases where a multi-touch interface becomes an issue more often than Javascript doesn’t.

    …so really, the questions are: (1) how much Flash on the web is really used in applications, rather than video containers, annoying sidebar ads or those over-the-top splash animations to restaurant web sites that make you desperately look for the “Skip Intro” link; (2) how many of those applications rely on hover events and other things that have no direct analogue in a touch UI; and (3) how many of those applications can be recreated as standalone iPhone/iPad apps using Flash CS5 anyway?

    My suspicion is that the answers are (1) comparatively little, (2) not actually that many, and (3) the vast majority. Point (3) in particular keeps being largely ignored in this debate, but most Flash-based games would be better served by being standalone apps rather than web page embeds. So really, I strongly suspect the “aaah! no Flash!” headless chicken dance is just a sideshow for everybody but people creating video containers, annoying sidebar ads and restaurant web sites. People creating annoying sidebar ads and most restaurant web sites need to be pickled and shipped to Antarctica anyway, so that just leaves the video containers. And if I ran a big web site that contained lots of Flash-only video containers I’d be irritated by Apple’s stance, no question about it. It sucks to be them. But if I ran Apple, I’m not sure I’d find “sites that contain lots of Flash-only video containers will hate you” to be vastly compelling.

  • davesmall

    @Chipotle said, “annoying sidebar ads or those over-the-top splash animations to restaurant web sites that make you desperately look for the “Skip Intro” link”

    That’s my favorite post of 2010 to date Chipotle. You nailed it.

  • dazweeja

    @Chipotle, your post contained some good points but I would say, 1) Even if it’s comparatively little, it’s still thousands of actual apps I might want the *choice* to access and many that I definitely do use on a weekly basis, eg. Aviary, Babbel, Google Street View, etc. Take Aviary for example – this is a fantastic app that would be impossible to create in Javascript. Sure, Aviary could be rewritten as a native iPad app but why couldn’t I just go to the Aviary website and use the app that’s there? My guess (just a guess) is that it would take the poor devs at least 6 months to rewrite the entire app in Objective-C. What use is an internet/multimedia device that hides some of the best apps on the web from me? 2) I don’t know either but it should be pointed out that Flash 10.1 supports multitouch. Does Javascript have standard events that deal with multitouch (I know the Safari iPhone version has an API but do browsers on other mobile devices)? The events you mentioned in an earlier seem to relate to single-touch gestures. 3) Video sites are a very large part of the web. There’s currently no convenient way of delivering video consistently across browsers without Flash or some other plugin. H.264 is a good codec but you can’t watch it in Firefox or IE without a plugin. Theora is almost as good as H.264 but still you can’t watch it in IE without a plugin. So if you want one solution that’s going to work across all browsers, Flash/H.264 is still the best method to use. It’s fine to offer a HTML5 video solution (with Flash fallback) for browsers that support it but then you can’t take advantage of some features of Flash that are really quite useful (adaptive bitrate, encryption, etc). finally, I don’t think the Flash CS5 iPhone packager is going to be particularly useful for games. It’s fine for simple apps but from what I’ve seen, anything more complex than that is quite laggy. This could change by release though but I think they’ve got a long way to go. You’ll still have problems with the app store approval processes and all that junk as well.

  • miloh

    @dazweeja

    “… Even if it’s comparatively little, it’s still thousands of actual apps I might want the *choice* to access …”

    But you DO have a choice. You don’t have to use Apple’s products. Nobody is preventing you from using something else that can access those apps. You are free to choose where your money is spent.

    People like to complain that Apple isn’t letting the market decide. I don’t think they understand what that means. When someone puts a product out there, it either sells or it doesn’t. THAT is the market deciding. If people don’t like it, they won’t buy it.

    Unless there is some evidence to the contrary, this is what I see Apple doing. The market IS deciding. I think some just don’t like the decision.

  • Chipotle

    @dazweeja:

    (1) In theory, if you can recompile a Flash app, nobody has to rewrite anything in Objective-C. It’s definitely aggressive of Apple to take a “make it an app or beat it” stance, I’m not 100% sure I agree with it, but there it is.

    Beyond that, sure, choice is an issue. If for you the iPad is “hiding some of the best apps” on the web, that may be a deal-breaker. For me, this is a fairly minor issue. I can’t use Aviary, but I can use other drawing programs; I can’t use Babbel, but there’s a myriad of language learning tools; and Google Street View is built into the map application. My iPhone’s lack of Flash very rarely hinders my browsing in Safari.

    (2) I know Flash 10.1 supports multi-touch, yep. (I’m not arguing Flash is intrinsically Sucky Useless McSuck here, keep in mind!) The iPhone Javascript gestures do indeed handle multitouch events:

    http://www.sitepen.com/blog/2008/07/10/touching-and-gesturing-on-the-iphone/

    (3) Realistically, there’s Youtube, Vimeo, Hulu — and everybody else. The first two already support iPhone OS, and there are persistent rumors Hulu will soon. When you say, “There’s currently no convenient way of delivering video consistently across browsers without Flash or some other plugin,” well, yes. You can choose to consistently deliver video across browsers with QuickTime. No, I don’t like QuickTime either, but there you go. But as you observed it won’t be that difficult to offer a hybrid Flash/HTML5 solution; just make HTML5 the fallback, not Flash. Heck, someone sufficiently masochistic enterprising could make a hybrid Flash/QT solution, one presumes. It’s all H.264, except for those weirdos using Ogg Theora.

    As for: “I don’t think the Flash CS5 iPhone packager is going to be particularly useful for games. It’s fine for simple apps but anything more complex than that is quite laggy.” …well, um. the iPhone packager doesn’t do just-in-time compilation at runtime, it outputs native code. While that doesn’t mean it’ll be faster, it shouldn’t be appreciably slower, since it’s presumably using a derivative of the JIT compiler technology to accomplish this feat. This can’t help but raise questions about just how well a “true” Flash runtime on an iPhone would actually perform.

    (I do know that if I was an engineer at Adobe, I would be doing positively everything in my power to make sure a few popular Flash browser games run in top form on Android, ’cause if there’s the slightest perception that a complex game is even a little laggy, the sound of iPhone owners pointing and laughing will require me to wear earplugs for at least a day.)

  • dazweeja

    @Chipotle, I did say “Flash or some other plugin”. Quicktime is a proprietary plugin with less penetration and less features which is precisely why Flash is now primarily used when QuickTime (and Real and Windows Media) obviously had a huge head start in the video space. My comments about iPhone packager performance were about the actual performance of the Flash-created apps available in the app store now which obviously sucks (http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/). I think this is because “the upcoming iPhone packager in Flash CS5 is essentially bundling the AIR runtime into a compiled .ipa iPhone application” (http://www.flashcomguru.com/index.cfm/2010/2/15/flash-air-for-android). At this stage, it’s not an optimised transcoding process but one that introduces another (slow) level of abstraction even though all code is native. That’s my understanding any way and Kevin Lynch’s recent comments seems to support this. I can understand why Adobe went this route as AIR will be available on most other mobile platforms so it makes sense but performance does appear to suffer with this approach. My comments about multitouch and video relate more to the main thrust of article which seems to be “why rewrite in Flash when you could rewrite it in HTML5?”. Rewriting a solution specifically for an iPhone is obviously less preferable from a development point of view than rewriting for use across all devices which is what Flash is intending to do. Flash aims to have consistent multitouch and video support across browsers/devices and I don’t think HTML5 will be able to achieve the same thing in the next few years at least (codec problems, multitouch support in all browsers, etc). I’d like to add that I definitely think that HTML5 should be used in preference to Flash where it makes sense – which to be honest is a large proportion of the current uses of Flash – but I’d still like the option to use Flash in the areas where it excels. I mentioned those apps – Aviary, Babbel, Sliderocket too – because I think they are the best. Sure, there’s alternatives but why should I have to settle for second-best on the iPad? Of course, I could buy another device but this criticism is all in the context of this article.

    @miloh, market forces are one way to change company behaviour but it’s not the only way. There’s plenty of examples of companies adding/changing features in response to consumer feedback even when market share is increasing. Big companies do take note of the chatter on the web, especially if a theme is repeated often enough. You can tell from reading their Blogs that Adobe have definitely taken note of the fact that there’s currently a lot of unhappiness about the performance of Flash on OSX for example (even though each version of Flash has had greater penetration than the version before). I see no reason not to voice criticism of Apple’s policies, especially in the context of this article, and I certainly hope to move across to an Android phone in the middle of the year when my iPhone 3G contract expires, assuming that a suitable alternative is available. I’m not convinced that there’s one available now that I’d be happy with.

  • Chipotle

    @dazweeja:

    I don’t think we’re in excessive disagreement; it’s in some ways more a matter of weighting. :)

    Perhaps I’m prosaic because I’ve had to switch platforms multiple times over the time I’ve been using computers and am used to the idea that sometimes things I really like aren’t going to come with me, and the reasons why aren’t always technical. But I tend to get by. Sometimes I find the thing I thought was second-best, once I get used to it, actually works a lot better for me. On the Mac, TextMate vs. BBEdit is a prime example of that in a personal use case; before that, I terribly missed an obscure word processor called Nota Bene when I moved to the Mac. Nothing on the Mac that I’ve found is really better than Nota Bene, but my workflow’s adapted over time.

    As I said, I’m not against Flash. (I actually work at a company that’s done most of the UI of the web-based components for the product I’m working on using Flex, although I’ll admit that it strikes me as an example of one of those places Flash wasn’t really necessary.) There’s still stuff that’s hard to do in Javascript–people keep tossing about “HTML5,” but Javascript is actually the engine pulling the HTML5 web app train, right?–mostly for performance reasons. Google Street View is an example you gave: maybe Javascript could do that, if the engine was really good and it had a strong tailwind behind it. Maybe. But probably not. And there’s no completely convincing reason I’ve heard for Apple not to allow browser plugins, particularly on the iPad.

    The one place where “HTML5” is the right buzzword to use is of course video. For that, I don’t have any pretense to a crystal ball. Issues with codecs, and to a lesser degree encryption and adaptive bit rate and such, are pretty trivial to address on a technical level. Addressing them on a political level is, as Steve Jobs might say, a big bag of hurt. :)

    My main thrust is that I think the lack of Flash on the iPad isn’t ultimately going to be a make-or-break thing for most users. Despite some of the more breathless talk about how the iPad is as transformative as the original Macintosh (and maybe in some ways it is), it’s important to remember that for right now it can’t replace a computer. It relies on being managed by iTunes. Not being able to do certain things doesn’t mean the user isn’t able to do them, because the user still has a full-fledged computer. So the question is really, “Is the ability to play Flash so important to me that I’m going to forgo everything else this device does?” For some people the answer is certainly going to be “yes.” But it really seems to me that the iPad versus (as yet mostly unseen) competing “pad” devices–ones running Android or Chrome OS, rather than Windows Tablet PCs–is going to be another variant of the iPhone versus Android and WebOS phones.

  • miloh

    @dazweeja

    Criticism is fine. Acting like one doesn’t have a choice is just whining.