I was anti-Flash before Steve Jobs made it cool. I have as much anti-Flash credibility as anyone.
For over a decade I've steered organization after organization away from building solutions in Flash, often against great resistance. I was evangelizing SVG — what I saw as the biggest opportunity for a more illuminated, open solution than Flash — back when it's strongest corporate sponsor was none other than Adobe.
Aside: Humorously Adobe was leveraging SVG in their battle against Macromedia's Flash/Shockwave empire, before finally giving in and buying 'em out.
I have railed loudly against Flash on many occasions.
Yet Flash is fairly pervasive, despite my valiant attempts.
Up until around 2005 and the birth of YouTube, Flash had very little presence in the video space: That realm was dominated by Real Player, Windows Media Player, Quicktime, among others. Flash fit in the RIA niche where it displaced the short-lived empire of ActiveX and Java Applets. It was the tool for great web entertainment like You Don't Know Jack, the Net Show.
Then YouTube rose with Flash at its presentation core, and the rest is history. Soon Flash was the oddball foundation for video.
If you mention Flash today, however, the topic will immediately veer violently to the great Flash/Apple battle of 2010, where Apple has loudly rejected Flash (where it represents a proxy for "rich applications they don't control"), and Google, perhaps being a bit antagonistic, has embraced it with their Android and Chrome solutions.
Ok, embraced is probably a bit of an overstatement. In reality Google's initiatives have top notch HTML5 support, the best JavaScript performance, and are probably the best mobile/thin platforms for rich HTML5 applications, but they just happen to optionally support Flash as well, perhaps providing a bridge from the past.
I've been running Flash on my Nexus One for several months now. I have it configured to On Demand so the scourge of animated, CPU-clogging Flash adverts don't destroy my web browsing experience. When there is Flash content that I want to view, I click the little arrow and voila, Flash is running on my mobile phone.
Overall it has been a very welcome addition to the device. From restaurant sites, to small videos like Zero Punctuation reviews, to games for my children, to product information pages, I like having the option of engaging Flash when the need arises.
So when I saw entry titled "Just How Bad Is Flash on Android" on Daring Fireball, of course I was drawn in. There Gruber indirectly linked to some demonstrations of Flash failing miserably on several Flash video sites.
To which, I say, no kidding.
Anyone under any illusion that having Flash on their mobile device opened up any and all content is willfully or technically incompetent. That or it's link bait trying to herd in the people who desperately need their biases confirmed, and a lot of people desperately need to believe that Flash isn't necessary on mobiles. I'd probably say it's that second option at play.
Of course not all content will play. This is, after all, a mobile device with a little power-sipping mobile processor. While 1Ghz sounds pretty pimp, the Snapdragon in the Nexus One is in many ways a weakling, particularly in video decoding and 3D graphics tasks where it fell behind even the iPhone 3GS.
On this 1Ghz processor I've had trouble playing local 720x480 h264 videos encoded at 1Mbps, encountering frequent stuttering and dropped frames. Compare that to the iPhone 4 which allows for up to 7Mbps+ videos at 1280x720, which it plays flawlessly, owing to the excellent hardware decoding.
When it comes to video the iPhone 4 simply kicks the Nexus One (and virtually every other HTC Android device, as HTC is addicted to Snapdragons) to the curb. Then again, the Samsung Galaxy S kicks the iPhone 4 around and calls it Sally, while the OMAP in the Droid 2/X offers a fair fight.
Snapdragon processor devices are not the top of the pile by a long measure.
So the Nexus One really isn't a great platform to highlight video prowess anyways.
Enough with the hardware excuses.
Add that Flash is often its own worst enemy: When you enable the plug-in, your enable in the Android browser is browser wide for that page, meaning it simultaneously enables the twelve punch-the-monkey animated ads surrounding it, often destroying the experience.
So there is no surprise at all that a high bitrate 1000x500 video surrounded by Flash adverts — a scenario that clogs a high performance 2.4Ghz core on a modern x86 PC (which would be equal to about a 8Ghz or higher snapdragon) — probably with a layer of DRM adding more demands, doesn't run so great on a mobile device.
Given that I've enjoyed Flash on my smartphone on many occasions, I find such claims — which I keep seeing made by seemingly non-stupid individuals — ludicrous. It is fervent, desperate doublespeak.
Mobile Flash exists. It's far from perfect. The available content usually isn't even aware that it exists. Yet still, it is.
And really, it isn't a fair fight anyways. When sites provide HTML5 video, they do so often specifically for the iPhone/iPad because of the massive namespace territory they conquered. Most sites don't even feature sniff for the functionality — they don't care if you are running Chrome or Safari or IE 9 and can run HTML Video — but will instead refuse to serve up HTML 5 video for anything but those Apple devices. Given that, they encode specifically and only for that platform, with appropriate bitrates and complexity profiles ideal for those devices.
There's no big surprise that it often runs well.
That isn't a very encompassing, scalable solution though. One device family isn't meant to rule, and at some future point HTML5 will start to leave the iOS devices behind. The iPhone lived through a special moment in time where it was handled as a blessed child, getting its own special treatment, however that moment is passing.
Of course the Flash people have a solution for disparate devices, using dynamic streaming that is based upon the consuming device (resolution and bitrate scaling based upon the capabilities of the device, very similar to some technology in Microsoft Silverlight). Not surprisingly there is little use of it yet given that mobile Flash devices just started appearing very recently, and still comprise a tiny market.
No.
When I originally thought about how to respond to this, my first idea was to make a video demonstrating a smartphone failing miserably at rendering and interacting with various HTML5 sites. But then I thought better because someone might confuse that as a serious criticism of HTML5 when I love the technology stack and pragmatically realize that it can't (and shouldn't) always be universally accessible.
Yet still, contemplate the failings of HTML5 on mobile devices:
Anyone who has browsed on their smartphone or tablet has experienced all of those. If someone were looking to go out of their way to act shocked that such an experience exists, source material can be found everywhere.
Which is of course why many sites, like the atrocious script pig TechCrunch (seriously, load it up in Firefox with Firebug and check the net tab), created special mobile pages that they force you to, against your will, when you try to visit on a mobile device.
The next time you see a TOP 10 CANVAS DEMOS on your social news site of choice, pull them up on your tablet or smartphone and check out how well they work. Chances are overwhelmingly that they will fail miserably. Almost every HTML5 game demands that you use a keyboard to control it, if they aren't simply too resource demanding for a little mobile device.
So do we write off web browsers on mobile devices? Do we say, in a tut-tut-tut fashion, "No mobile browser exists. WAP is the world for portable devices!" I hope not.
One trend that is accelerating is the movement of many ads to HTML5 and away from Flash. That short period where iOS devices came with an almost intrinsic AdBlock+ in the form of the lack of Flash capabilities is rapidly disappearing. Soon every page you visit is going to be a mishmash of computationally demanding canvas renders and DOM manipulations, and it's going to become much more difficult to avoid their cost.
For those who are on the fence about the whole Flash thing — whether they care about it on their mobile or tablet — take a look a the quick video I put up above. The videos did not run perfectly, the auto configurator didn't provide a seamless, perfect experience...yet if the option is that or nothing, I think most reasonable people would agree that it's better than nothing.