Ask HN: Why wasn't Adobe able to make Flash run well on smartphones?
10 comments
Define runs well.
My macbook is silent until I visit a site with a flash banner at which point the cpu fan comes on. That tells me that flash does something computationally intensive even when displaying what looks like a 4 frame movie with a button that prompts me to click to the next destination. The time between loading a page and hearing the CPU fan come on depends on how ad-laden the page is. While my machine doesn't lag and Chrome Canary will occasionally lag a little when scrolling those pages the first time, I'd have to say that translates to high cpu utilization which would kill a phone's battery pretty quickly.
The other problem was focus - most flash games used the mouse pointer for directional control. The mouse pointer doesn't exist on a phone and a tap would correspond to a mouse click. Redesigning Flash to deal with those issues on web pages where HTML5 solves many of those issues convinced Adobe to concentrate on Air, and leave webapps to HTML5.
Flash won't disappear overnight, but, new development ceased. Whether they make it support GPUs before relegating it to a 'security release only' update policy is hard to say.
Personally, I have removed flash from my macbook and only Chrome/Chrome Canary(my primary browser) can even see Flash enabled pages/sites. Months ago it was very irritating when the version of flash bundled with Canary would crash on one page and violate the sandbox causing google.com/music to crash as well.
*still amazed at the irony of using Flash for google.com/music :)
My macbook is silent until I visit a site with a flash banner at which point the cpu fan comes on. That tells me that flash does something computationally intensive even when displaying what looks like a 4 frame movie with a button that prompts me to click to the next destination. The time between loading a page and hearing the CPU fan come on depends on how ad-laden the page is. While my machine doesn't lag and Chrome Canary will occasionally lag a little when scrolling those pages the first time, I'd have to say that translates to high cpu utilization which would kill a phone's battery pretty quickly.
The other problem was focus - most flash games used the mouse pointer for directional control. The mouse pointer doesn't exist on a phone and a tap would correspond to a mouse click. Redesigning Flash to deal with those issues on web pages where HTML5 solves many of those issues convinced Adobe to concentrate on Air, and leave webapps to HTML5.
Flash won't disappear overnight, but, new development ceased. Whether they make it support GPUs before relegating it to a 'security release only' update policy is hard to say.
Personally, I have removed flash from my macbook and only Chrome/Chrome Canary(my primary browser) can even see Flash enabled pages/sites. Months ago it was very irritating when the version of flash bundled with Canary would crash on one page and violate the sandbox causing google.com/music to crash as well.
*still amazed at the irony of using Flash for google.com/music :)
"current smartphones (iPhone 4S and the latest Android phones) should have more computing power than my laptop 5-7 years ago."
It depends on what you compare. Even if the CPU is fast, its speed is there to work less, not to be 100% all the time. See:
http://www.anandtech.com/show/2782/2
"although the system may require 3 watts or so to "hurry up", the power consumption goes down near .25 watts when idle. By averaging these two numbers, one can quickly see how quick start can extend battery life"
There are Flash-based ads that push CPU use to 100% on 6 years old computers for all the time you're looking at the page with contains them.
Second, the video decoding on the phones is done not in the main CPU -- there's a hardware decoder. If Flash video content is not suitable for the hardware decoder, Flash code has no chance to be efficient. Again, 100% CPU use.
It depends on what you compare. Even if the CPU is fast, its speed is there to work less, not to be 100% all the time. See:
http://www.anandtech.com/show/2782/2
"although the system may require 3 watts or so to "hurry up", the power consumption goes down near .25 watts when idle. By averaging these two numbers, one can quickly see how quick start can extend battery life"
There are Flash-based ads that push CPU use to 100% on 6 years old computers for all the time you're looking at the page with contains them.
Second, the video decoding on the phones is done not in the main CPU -- there's a hardware decoder. If Flash video content is not suitable for the hardware decoder, Flash code has no chance to be efficient. Again, 100% CPU use.
I would accept the battery life argument if Apple did not allow games in the App Store that drained the battery very quickly. Why is it acceptable (for users/Apple/Steve Jobs) for iOS games to drain the battery but not acceptable for Flash to drain the battery.
If there was a draconian 'thou shalt not drain the battery' rule in place, I can see how Flash would violate that. But there is no such rule in place, since other apps are allowed to drain the battery very quickly.
If there was a draconian 'thou shalt not drain the battery' rule in place, I can see how Flash would violate that. But there is no such rule in place, since other apps are allowed to drain the battery very quickly.
> there is no such rule in place, since other apps are allowed to drain the battery very quickly.
Flash was not an app. It was supposed to extend the Apple's browser. Imagine you develop the browser, and you can decide if you want to allow me to "extend" it causing it: crashing all the time (see how it performs on the OS X), making the otherwise fluid pages "stuck" and unresponsive, and finally, not even having a ready version of extension for years. Furthermore, if you're aware that anybody who develops something new would have anyway to develop the interaction differently for your mobile device, and that the main benefit of my extension is for the already deployed code (the one designed for the desktops). But you know that the already deployed code simply cant be run "properly" (as in having a proper interaction) on the mobile device no matter how the extension is developed. Then would you allow me to diminish the value (making it behaving worse) of your already finished product?
Flash was not an app. It was supposed to extend the Apple's browser. Imagine you develop the browser, and you can decide if you want to allow me to "extend" it causing it: crashing all the time (see how it performs on the OS X), making the otherwise fluid pages "stuck" and unresponsive, and finally, not even having a ready version of extension for years. Furthermore, if you're aware that anybody who develops something new would have anyway to develop the interaction differently for your mobile device, and that the main benefit of my extension is for the already deployed code (the one designed for the desktops). But you know that the already deployed code simply cant be run "properly" (as in having a proper interaction) on the mobile device no matter how the extension is developed. Then would you allow me to diminish the value (making it behaving worse) of your already finished product?
"As Steve Jobs put it: “Flash was designed for PCs using mice”—which is true. When Flash was created back in the 90′s, the target platform that it was designed for, was the PC. Flash was designed for desktop computers, computers with a fast CPU and a power-cable. This is the root cause of all the hardships Adobe has had with mobile."
read the rest of the article here - http://techcrunch.com/2011/11/09/why-adobe-failed/
explains everything super well!
read the rest of the article here - http://techcrunch.com/2011/11/09/why-adobe-failed/
explains everything super well!
Thanks for the link, I'll take a look.
As for the following: > "As Steve Jobs put it: “Flash was designed for PCs using mice”
Well, HTML was also initially designed for PCs using mice, but it has managed to evolve to the new era of smartphones, so why couldn't Flash evolve to utilize the new touch interface?
> Flash was designed for desktop computers, computers with a fast CPU and a power-cable.
I have several games on my iPhone (Fieldrunners being the example that comes to mind) that are are so power hungry that they deplete my battery in no time. And yet these are acceptable by users, but a Flash game that depletes battery is not acceptable. Why is this the case?
As for the following: > "As Steve Jobs put it: “Flash was designed for PCs using mice”
Well, HTML was also initially designed for PCs using mice, but it has managed to evolve to the new era of smartphones, so why couldn't Flash evolve to utilize the new touch interface?
> Flash was designed for desktop computers, computers with a fast CPU and a power-cable.
I have several games on my iPhone (Fieldrunners being the example that comes to mind) that are are so power hungry that they deplete my battery in no time. And yet these are acceptable by users, but a Flash game that depletes battery is not acceptable. Why is this the case?
"And yet these are acceptable by users, but a Flash game that depletes battery is not acceptable. Why is this the case?"
If you ask ordinary "users" they'd want everything, including Flash on every device and in the browser too. Then they'd complain that "the internet" is to slow to even appear even if the page "just has a few ads." In Apple's case, Jobs, not "users", decided what he cared more for.
If you ask ordinary "users" they'd want everything, including Flash on every device and in the browser too. Then they'd complain that "the internet" is to slow to even appear even if the page "just has a few ads." In Apple's case, Jobs, not "users", decided what he cared more for.
But this is simply pushing the question further up the food chain.
That is, the question becomes: Why did Jobs find it acceptable to have iOS games on the iPhone that kill the battery within an hour, but found it unacceptable to have Flash that kills the battery within an hour?
That is, the question becomes: Why did Jobs find it acceptable to have iOS games on the iPhone that kill the battery within an hour, but found it unacceptable to have Flash that kills the battery within an hour?
I think the underlying (and completely unsolvable) problem boils down to user experience. There are myriad flash apps out there with atrocious hover-state-based interfaces that are annoying on PC, and would be completely unusable on a touch screen device. Activating flash on a mobile device would open the floodgates to countless apps that simply wouldn't work, without providing context to the user as to why they don't work. In such a situation, it is simpler to control the user experience by simply not allowing flash.
Aren't there countless websites out there with no Flash and only HTML/Javascript/CSS that have atrocious hover-state-based interfaces that are completely unusable on a touch screen device?
Why deal with hover-state-based interfaces differently for Flash and non-Flash websites?
Is it easier to show a user a mobile version of the site (with no hover-state dependencies) if that site is non-Flash than if it has any Flash on it?
Why deal with hover-state-based interfaces differently for Flash and non-Flash websites?
Is it easier to show a user a mobile version of the site (with no hover-state dependencies) if that site is non-Flash than if it has any Flash on it?
So, if my laptop 5-7 years ago could run Flash content just fine, why does it not run well-enough on today's smartphones?
Is it the size of the RAM? Is it due to strict computing restrictions imposed on smartphones to help save battery life?
In what ways were laptops from several years ago better equipped to run Flash than the latest and greatest smartphones from today?