The black box that is the Flash Player

This morning I read an interesting blog post by John Dowdell highlighting some things that bothered me in the last week or so (and talked about on twitter).

We’ve been seeing some sensationalist headlines on tech blogs like “Open Source JavaScript to Replace Flash?” without seemingly any understanding of the (all be it incredibly cool) project in question.

Gordon is Javascript code that parses SWF files, loops through the frames and outputs SVG that can be played back in modern browsers without the need for the Flash Player plugin — that means it works on browsers like the one on the iPhone. A fantastic proof of concept and it works really well considering the amount of heavy lifting it needs to do.

The problem here is, this is not a Javascript based Flash runtime as it gets advertised. Its parsing an SWF file and outputting SVG graphics. If you look at the list of supported SWF tags you’ll notice these are all SWF version 1 and 2 — meaning very basic functionality. Search for some tutorials on Flash 1 or 2 if you can still find them and see what that limits you to.

Not to diminish this great project, at this time its practically only useful for very simple banners or animations without any sound or user interaction. It is also – understandably so – heavy on the CPU. Now you get the kicker with uninformed comments like this:

“While the open source Gordon is available to all, it still doesn’t solve one of Flash’s biggest problems. These SWF files still hog the CPU. One demo, a simple vector graphic of a tiger, throws my desktop browser up to around 100% CPU usage”

To be very clear: it is *not* running the SWF file — its parsing it, converting it using Javascript and outputting SVG. Running that same SWF file on a native Flash Player, even on a smartphone would be a fraction of that in terms of CPU usage.

Then you get people saying projects like this highlight how the Flash Player has become obsolete and its proprietary format is harming the “open web”. Somebody hasn’t been paying attention since 1998. The SWF format is open and freely available (as are many other formats and protocols used in the Flash Player), that is in fact what makes projects like Gordon possible without resorting to reverse engineering.

There is literally nothing stopping anyone from developing an open source Flash Player, Adobe’s implementation isn’t fully open source mostly due to some technologies it licenses and can’t release (video codecs and text rendering). Saying the Flash Player is a black box or its future is in jeopardy because of its proprietary format is just factually wrong.

I do hope to see more people take up the challenge and start developing code that plays back SWF content, we can only benefit from that.



7 thoughts on “The black box that is the Flash Player

  1. oos says:

    Right on man! The reports about this by certain tech-media have been _very_ uninformed, to say the least.

  2. Kristof Elst says:

    I can’t believe people actually say that … Very nice rebuttal!

  3. makc says:

    Re “There is literally nothing stopping anyone from developing an open source Flash Player” *cough* it’s quite the opposite, since Adobe provides swf specs under condition that that information will not be used to create a player.

  4. Martijn says:

    The only problem with Flash being proprietary is the decisions to fix or implement a feature in the Player. There are things in the flash player that I posted as bugs which where resolved 3 or 4 versions later (major versions).

    Besides that I’m a iPhone and Mac user but I’m very disappointed with Apple regarding Flash Player. Maybe it is because the Flash Player can do things a native app could do too but I still think I would use a native app before any webpage. And when CS5 is released they have a big problem if the promise to export iPhone apps is as they say.

  5. Peter says:

    @makc: that is not true, since the Open Screen Project announcement (May 1st 2008) that restriction is lifted. You are allowed to create code that plays back SWF content.

    Incidentally all license fees have been dropped to include Flash Player on your hardware.

  6. It’s easy to understand how tech blogs could get the wrong end of the stick when the Readme for Gordon, reads “Gordon: An open source Flash™ runtime written in pure JavaScript”, but hey.
    I do honestly think there will be a shift from our beloved Flash towards HTML5, WebGL, etc. but I’m hopeful that a) it will take several years, and b) Adobe will respond with tools to create applications with these emerging standards, just as they have done with iPhone output in CS5 (If you can’t join ’em, beat ’em, or at least circumnavigate their restrictions :). As soon as there’s a market, Adobe will do what’s needed to keep their customers, a big part of which is us, the Flash community.

  7. […] of Flash what you will, thats a different discussion, and I’ve shared my views in an earlier post. Flash content is an integral and important part of the web experience, […]

Comments are closed.

%d bloggers like this: