Flash versus HTML 5
The mobile perspective
“The mobile era is about low power devices, touch interfaces and open web standards – all areas where Flash falls short,” says Apple CEO Steve Jobs in his notorious Thoughts on Flash. “New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too).”
Adding to the confusion, every non-Apple vendor has jumped on Flash as a key selling point, one thing that iOS looks unlikely ever to support, and the majority of the smartphones and tablets on show at CES earlier this year boast Flash support.
RIM has gone further with its Tablet OS on the forthcoming BlackBerry PlayBook, which uses the Flash-based Adobe AIR for part of its user interface and as a development platform for apps.
Despite this, Jobs is not all wrong. While the absence of Flash on a smartphone web browser can be annoying, so too are Flash-laden pages which load slowly, eat battery life with unnecessary multimedia, and may not look good or be usable on a small screen unless the developer has optimised the page for mobile.
HTML in the browser and native code for applications is ideal. HTML 5 is not done yet, but most mobile browsers are based on WebKit or Opera, both of which support a significant proportion of the emerging standard.
Jobs is partly wrong though, and the technology has moved on since his April 2010 piece. Jobs said he had never seen Flash performing well on a mobile device. In June 2010 Adobe released the first full Flash player for mobile, version 10.1, and while it is still relatively resource-hungry it is more than tolerable on devices running Android 2.2, for example.
Move on to the new generation of devices, and it gets better still. Some are already using NVIDIA’s Tegra 2 package, which is fully hardware-accelerated for Flash. “We have worked directly with the Flash Player source code, to have a fully GPU-accelerated code path for the Flash player,” said Barthold Lichtenbelt, NVIDIA Director of Tegra Graphics. This is not just for video, but deep in the hardware. Flash will run just fine.
Next page: Trade-offs
COMMENTS
agreed...
i'm a long time mac user but jobs is wrong on this one - a bit like cd burners and blu-ray on macs - apple should have phased out flash slowly, not just dumped it.
i've bought an advent vega tablet, it runs flash nicely and more importantly, it runs when i choose to run it in the browser - great, so i can choose to run flash or not.
this makes the ipad look daft, and overpriced.
apple could live to regret this decision. hopefully once jobs has gone, they will think again about flash and blu-ray......
missing the point
Do you think that the annoying bulky flash ads will be replaced with content (of empty space) when everybody moves from flash to html5? Think again. They will just re-create them with html5, including the bulky graphics and sounds inside.
So the point about html5 being better for mobile is moot...
HTML5 is no magic bullet
I think some people believe that if we got rid of Flash that everything would be good with the world.
Sadly this is not the case at all. If authoring tools were repurposed to spit out the HTML5 equivalent of a SWF, the content would likely run even worse than it did as a plugin. All the DOM+JS in a page runs in a single thread apart from worker threads which are not allowed to interact with the DOM at all. So if you had a couple of banner ads and some content they would all be in contention and running from the same thread. The whole experience would chug as timers fired and the page was constantly refreshed by DOM changes and additional GC occurred. Needless to say performance would also wildly vary from one browser to the next too.
The best that could be hoped is that banner ads etc. would confine themselves to canvas elements where the browser stands the best chance of optimizing the refresh rate. Any overlayed content (equivalent to windowless Flash) would likely suffer very badly.
The situation with video is even more complex, but I don't think the browser could do a better job than Flash here either. Video decoding is a slow operation and requires hardware acceleration to be optimal. In addition video content is YUV encoded and must be converted and rendered into an RGB colourspace, possibly sandwiched between other DOM elements. At best performance might match Flash and at worst (especially for WebM) there might not be any hardware acceleration at all for the forseeable future, at least in desktop browsers.
So the while HTML5 would be a good way to weed out some of the most gratuitous used of Flash (e.g. webforms etc.), it's not some magic pill that solves the issues people level at Flash. In the case of animation / media heavy content it's likely to be a lot, lot worse.
Even if Flash dies
Even if Flash dies, it will take at least a few years before it would be all but gone. So even if HTML5 is the way of the future, a phone that can handle flash will have an advantage over a typical life of 2-4 years.
Have you actually *used* flash on 'droid?
"[Flash] is more than tolerable on devices running Android 2.2"
No it isn't, it's terrible. I have a Galaxy Tab, an android device with pretty must the most up to date processor, big display and plenty of RAM.
Navigating to any website that uses flash is a nightmare. The android browser won't even let me scroll until the page has loaded all its Flash content (sllloooowwwwlllyyyy), and then the whole thing is jerky and a pain to navigate. And, being Android, this slowness affects the whole phone, not just the browser, so unless I go into the Task Manager (I thought we'd gotten rid of those in the mobile world.) and kill the browser, I can't use my phone*. Oh joy.
