Sympathy for the Devil

In the last couple of years, it has become trendy to bash the Adobe Flash Player. I need to say a few things on that subject.

First, let’s be very clear: I’m not on the Flash team. I don’t speak for them. (I don’t speak for anyone but myself.) This post is just my personal take on things. Caveat lector.

I came to Adobe ten years ago to build an open standards (SVG)-based Web animation tool. I like standards, and I have some experience here. Both authoring for & competing with the Flash Player gave me some good perspective. Here’s a quick summary of my long piece below:

Flash is flawed, but it has moved the world forward.

Open standards are great, but they can be achingly slow to arrive.

Talk of “what’s good for standards is bad for Adobe” is misinformed nonsense.

Flash will innovate or die. I’m betting on innovation.

Let’s be clear: It’s fine to say that Flash is flawed; it is. (You know who’d agree? The Flash team.) It’s fine to hope for alternatives to take root. (Competition makes everyone better.) But let’s also be honest and say that Flash is the reason we all have fast, reliable, ubiquitous online video today. It’s the reason that YouTube took off & video consumption exploded four years ago. It’s the reason we have Hulu, Vimeo, and all the rest–and the reason that people now watch billions of videos per day (and nearly 10 hours apiece per month) online. Without it, we’d all still be bumbling along.

Macromedia was the only company that delivered truly ubiquitous (99% penetration) video playback. Apple didn’t*. Microsoft didn’t. Real didn’t. (Remember how you used to see sites offering multiple streams, making the user pick a player, because the content creator couldn’t rely on everyone being able to view one format? Good riddance to that crappy customer experience.) Content creators, whose income is proportional to their ability to reach customer eyeballs easily and reliably, have voted with their feet, moving to Flash. As a result, more than three quarters of online video now streams in Flash formats (up from 25% three years ago).

All these years later, we still don’t have a standard, browser-native alternative, much less one that’s achieved widespread viewership. (WebKit-based browsers remain in the single digits on the desktop. Firefox, which uses a different video format, is at 25%. Microsoft is off doing its own thing.) That sucks.

I don’t doubt that some video standard will eventually emerge & make its way into most if not all browsers. In the meantime, Adobe spends millions of dollars a year building & giving away software–for which content viewers & even content creators don’t have to pay a dime–to compensate for the rest of the world’s failure to get the job done.

Maybe that sounds harsh, but I find the Flash-bashing tedious and hollow. Flash has all kinds of shortcomings; helping address them is why I joined Adobe, for God’s sake! But Flash, as Winston Churchill might say, is “the worst except for all the others ever tried.” It will improve, as will competing implementations. In the meantime, how about we give the devil (if that’s how you see it) his due, giving Flash credit for helping the world get this far?

— On Standards —

Stepping a bit beyond video, I’m personally delighted to see Web standards like HTML5 emerge. Adobe makes nearly all its money selling authoring tools that target great runtimes. (Conversely, as I’ve mentioned, Adobe loses money building runtimes (Flash Player, Adobe Reader) that it gives away in order to sell authoring tools.) More great runtimes to target means more opportunities to build content for them. Adobe will naturally follow the money, building authoring tools that produce what customers demand, and that includes HTML5-based work. Don’t believe me? Check out a demo of Illustrator, Flash, and Dreamweaver targeting the HTML Canvas tag.

Guess what, though? When I posted that story, almost no one paid attention. People want a certain “killer” narrative: Good guys vs. bad guys, open vs. proprietary, blah blah. That’s simpleminded and lame.

I keep seeing the video standards discussion phrased as “H.264 vs. Flash video**” (e.g. John Gruber writing about Apple “replacing” Flash video with H.264). Apparently people are unaware that Flash has been playing H.264 for years. It’s easily the most popular H.264 player in the world.

Adobe’s choice to embrace H.264 in Flash is what allows sites like Vimeo and YouTube to create HTML5/AVC (i.e., non-Flash) versions of their sites without gobbling up petabytes of storage and loads of CPU cycles creating and storing alternate versions of their videos. Instead of locking people into some proprietary solution it created, Adobe has spent millions of dollars to enable use of a more standard format.

The obvious problem with open standards, of course, is that they often take eons to implement, and developing for different implementations sucks up time and money. Does anyone else remember seeing really sexy “DHTML” demos that featured full-screen animation and more? I do. You know when that was? 1998. And today, more than 15 years after Netscape debuted, Flash remains the only way to, say, display a vector chart across browsers (i.e., such that you can count on every viewer seeing it). That’s sad–especially given that Adobe plowed a hell of a lot of time & money into trying to get the open SVG standardized & adopted.

SVG taught me some painful lessons: While we sat waiting on months (at least) of committee meetings, review periods, etc., Macromedia was free to innovate & iterate quickly with Flash. Their implementation was lean & ran circles around the Adobe player that dutifully tried to support a cumbersome spec. (Again, remember that all this is just my personal opinion.) Openness and standards and kumbayah don’t matter if someone is pantsing your big, ponderous committee.

And this gets to two key, interrelated questions: Why will Flash live on (i.e. what are its competitive advantages?), and Why isn’t Flash open-source/an open standard? Again, I do not speak for the Flash team, but my take is that Flash’s advantages are predictability & agility:

It doesn’t require you to target multiple runtimes (browsers, etc.) from multiple vendors. Instead, there’s effectively one Flash Player with a predictable set of capabilities. Fonts, pixels, etc. render consistently across OSes, browsers, and devices. You don’t need something like BrowserLab (a free Adobe service, by the way) for Flash.

If Adobe develops a new technology (e.g. the Text Layout Framework, leveraging InDesign tech and enabling beautiful Web typography), it can be deployed quickly & reliably to all systems. That is, we don’t have to say, “Yeah, we’d love to see better type on the Web, but first we have to convince these groups to add support, and then wait several years for updates to achieve broad adoption, and then hope it all works the same…” We can just do it, and support will hit critical mass quickly.

In a sense it’s a more Apple-like approach: Control things yourself, so design-by-committee doesn’t compromise your product. Open-sourcing Flash would lead to a fragmentation of the format & Flash runtimes, and that would destroy the predictability and agility that differentiate Flash from other standards.

If the Flash team continues to innovate–that is, if they deliver better features more quickly, more predictably, and with better authoring tools than other technologies–then Flash will endure. If they don’t, it won’t–nor should it. But I’m betting they will.

— On Mac vs. Windows performance —

Finally, let’s turn to a touchy subject.

If Flash runs faster on Windows than on Mac, that must be proof of Adobe’s incompetence and/or anti-Mac malice, right? Of course, if Flash ran faster on Mac than on Windows, that would be taken as proof of OS X’s modern awesomeness. Heads they win, tails we lose. (Come on, tell me I’m wrong.)

Despite the Flash Player team investing disproportionate resources in the Mac player (where the Mac has ~5% market share to 90+% for Windows), and despite them making big strides on the Mac, it’s true that Flash performance on OS X has lagged behind Flash on Windows. That needs to change.

My understanding is that there’s work that both Adobe & Apple could do to improve matters. Mac users*** complain about high CPU usage when playing video. The latest Flash Player uses many fewer CPU cycles for video, but the needed hardware decoding support isn’t available on the Mac right now. I don’t have any inside info here, but I’ve heard that the Safari team is a great group of folks, and I hope they’re able to work with the Flash Player team to added the desired support.

— In Conclusion —

I’m very optimistic about Flash, Web standards, and what Adobe can to help customers. In particular:

The Flash Player team has been very hard at work leveraging the GPU to deliver great performance on mobile devices. I expect those optimizations to make their way into the desktop Flash Player.

Developers are pushing standards like CSS 3D, WebGL, and Canvas to deliver interesting results. It’s about time Web browsers got good at this stuff, for everyone’s sake, and those enhancements roll right into Adobe AIR and the Creative Suite (both of which use WebKit).

Adobe sells tools that can adapt to fit customers’ needs. As new technologies open new possibilities, Adobe will deliver great authoring apps.

J.

* I just checked, and the download for QuickTime is more than ten times the size that of Flash Player. If you want ubiquity, size still matters.

** Incidentally, FLV (Flash Video) is a publicly documented format, as are RTMP and SWF.

*** I’ve been a fervent one since 1984.

Posted by John Nack at 3:59 PM on January 26, 2010