Adobe to Jobs: 'What the Flash do you know?'
Flash never ships with bugs we're aware of
Adobe has fired back at Steve Jobs after the Apple boss allegedly attacked Adobe Flash for being "buggy" and referred to the Flashmakers as "lazy."
"I can tell you that we don't ship Flash with any known crash bugs," Adobe CTO Kevin Lynch wrote today in a back-and-forth with commenters on an Adobe corporate blog, "and if there was such a widespread problem historically Flash could not have achieved its wide use today."
We weren't aware that only non-buggy products achieved widespread use. But there you have it.
According to Wired, at an Apple "town hall" meeting after the introduction of the Flashless iPad, Steve Jobs unloaded on Google, calling the search giant's "don't be evil" motto "bullshit," before rounding on Adobe.
"They are lazy. They have all this potential to do interesting things, but they just refuse to do it," he said. "Apple does not support Flash because it is so buggy... Whenever a Mac crashes more often than not it's because of Flash. No one will be using Flash...The world is moving to HTML5."
Adobe CTO Lynch - as might be guessed - has a different take. With an official Adobe blog post, he felt the need to defend Adobe's plug-in, pointing out its near ubiquity on the desktop and reiterating that it should be on the iPhone and the IPad as well.
"We are ready to enable Flash in the browser on [the iPhone and iPad] if and when Apple chooses to allow that for its users, but to date we have not had the required cooperation from Apple to make this happen," he wrote.
His post was undoubtedly inspired by the firestorm of criticism aimed at Apple - as well as an equally heated chorus of "good riddance" calls targeted at Adobe - after it was revealed that the iPad won't support Adobe's motion-graphics technology. "Some have been surprised at the lack of inclusion of Flash Player on a recent magical device," his post began, a not-so-subtle dig at Jobs' self-congratulatory description of the iPad as a "magical and revolutionary device."
Lynch claimed that Flash is running on 98 per cent of computers on the web, 85 per cent of "top web sites," and "enabling over 75 per cent of video on the Web today." In his view, Flash has been "incredibly successful" by "augmenting the capabilities of HTML." And he sees Flash and the still-gestating HTML5 standard as coexisting. "I don't see this as one replacing the other," he wrote, "certainly not today nor even in the foreseeable future."
But he also threw a few darts at HTML. "If HTML could reliably do everything Flash does that would certainly save us a lot of effort," he wrote, "but that does not appear to be coming to pass," adding that "the coming HTML video implementations cannot agree on a common format across browsers, so users and content creators would be thrown back to the dark ages of video on the Web with incompatibility issues."
He also took on cross-platform performance complaints. "Now regarding performance," he wrote, "given identical hardware, Flash Player on Windows has historically been faster than the Mac, and it is for the most part the same code running in Flash for each operating system."
Lynch then went on to note that Mac vector-graphic performance should improve in Flash 10.1 because of that plug-in's use of Mac OS X's Core Animation graphics capabilities, and that using that framework "will get us to the point where Mac will be faster than Windows for graphics rendering."
After admitting that Mac video performance on one (relatively gutless Mac mini) test system showed it to be over twice as CPU-taxing as on the same system running Windows in Apple' Boot Camp environment, he promised: "With Flash Player 10.1, we are optimizing video rendering further on the Mac and expect to reduce CPU usage by half, bringing Mac and Windows closer to parity for video."
He also admitted that there are browser-based inconsistencies in Flash performance. "On Windows, IE8 is able to run Flash about 20 per cent faster than Firefox," he wrote. "On the Mac, Safari has the performance lead currently in terms of running Flash."
Although Lynch has his share of allies among the commenters to his post, many others are not as supportive. "How, in good conscience," wrote one, "can Apple open their device for you to port a potentially battery gulping, processor hogging content platform?"
Another sarcastically remarked: "Thank you Adobe for killing Flash since you took it over from Macromedia," and a third contended that "Adobe has totally lost its way...the bloat and bugs [are] at an all time high!"
And - perhaps inevitably - one commenter calling himself "Truth Hurts," chimed in with a subtle, understated, and well-balanced summation: "CTO Kevin Lynch and all the Adobe employees are liars and lazy, just like Steven Jobs calls it." ®
If you kill flash on the Mac, people might just manage without it. (Plenty already do.)
If you try to kill HTML5 by filibustering the W3C, people might just go ahead and implement it without official blessing, which in legal terms would probably mean without any proprietary codecs. (Firefox certainly will.)
No, sir, the problem with calling someone's bluff is that they might not be bluffing.
The reason Flash hogs the CPU
The guy that heads up the Linux Flash team has been taking it in the neck over the CPU hogging and in a blog post gave a good explanation of why it is so, compared to playing raw videos. Mike Melanson has been a long-time contributor to the ffmpeg project before he joined the Adobe Flash Linux team.
"The Flash Player solves a different problem than your favorite video player."
He goes on to explain that because of the need to combine video with vector objects, fonts and other elements, Flash cannot simply blit its output to the screen or make use of pure hardware decoding of H.264 and the like.
A video player does: encoded video data > decoder >YUV > window
Flash player does: encoded video data > decoder > YUV > YUV-to-RGB > RGB > Blend-Flash-elements > browser window.
The key aspect here is the blending step.
For 'just' video streams therefore the player has to be prepared to do blending but it isn't used, but prevents any optimisations for 'movies'.
A further issue for the Linux player currently is his belief that H.264 video can't be hardware-decoded using VAAPI/VDPAU since those APIs can't decode to a memory buffer. Others have pointed out that belief is incorrect, so it is possible if that information is followed up the Linux player may see some useful speed increases for H.264 decoding.
It has also been pointed out that the blended elements could be made into GPU textures in the YUV colourspace, which would allow much of the blending operation to be hardware-accelerated on suitable systems.
So, in terms of performance I think there are two issues people who complain need to understand:
1. It isn't fair to compare playing an FLV video in a standalone player with it being displayed within a Flash applet since the applet could contain elements that need to be blended into the video image (these aren't like simple on-screen-display overlays).
2. There are several areas where the Flash applet could be made much more efficient which would reduce CPU usage on many modern systems with hardware support.
I remember the old days. Back then we were all using 14,400 dial-up and had slow cpus and hardly any ram, disk space or colour depth. But we could still download mucky film clips of lasses whose clothes were all in the wash.
What do we have today? On the one hand the youngsters are downloading those modern DVDs off Norwegian 'Bytestorrent' sites and playing them on their wireless-telephones and digital watches, and on the other hand Adobe reckon it takes massive computing resources to show a cartoon character swearing.
There's summat wrong somewhere.