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.
 

Posted
AuthorPeter