Since I installed Ubuntu 8.10 three weeks ago, I have not installed a Flash player. I don’t just mean I haven’t installed the Adobe Flash Player, I mean I haven’t installed any Flash player at all, not even Gnash or Swfdec. Those of you who know me as a free/libre/open-source software (FLOSS) advocate may be wondering why this is. After all, I don’t need to use any non-libre software if I run Gnash or Swfdec. I’ll explain why having a FLOSS implementation of a technology is not enough for me to use it.
The primary reason I don’t want to support Flash is that Flash is not a standard. It is not recognized by any standards body, there is only one complete implementation (IETF‘s RFC 2026 Section 4.1.2 requires “at least two independent and interoperable implementations from different code bases” to be considered a “Draft Standard”), the source code for the lone implementation is not freely-available, and the complete specification for making a compatible Flash player is not available.
Adobe’s Open Screen Project may have confused people into thinking that the Flash specification is totally open. But, according to the Swfdec and Gnash project leads, it omits “huge amounts” of information needed to implement Flash. Namely, the Real Time Messaging Protocol (RTMP) and Sorenson Spark video codec (the most widely-used Flash codec, used by default on YouTube) are not mentioned at all. Additionally, the Flash specifications available from Adobe are distributed under a very restrictive license:
This manual may not be copied, photocopied, reproduced, translated, or converted to any electronic or machine-readable form in whole or in part without written approval from Adobe Systems Incorporated.
So there isn’t even a stable version of the specification that you can use unless Adobe agrees to always keep a particular version of the specification on its website.
Another major problem with the current Flash specification is that it does not allow for the use of royalty-free audio and video codecs. For more details, see my comment on “How Flash Can Integrate With The Open Web”. As a result, anyone who implements Flash must either pay for a license to use the audio and video codecs specified in Flash or they must pass that cost onto the distributors and/or consumers. Before Flash is considered an open format, it must support at least one set of open audio and video codecs, such as Vorbis and Theora or Vorbis and Dirac. Unfortunately, companies like Adobe are taking a “better the devil you know than the devil you don’t” approach to purported royalty-free codecs, claiming that they are too risky patent-wise. This issue is made clear in the HTML 5 video element documentation and the background on the HTML 5 Ogg controversy.
Because of these many issues that make Flash far from standard, I am choosing not to support Adobe’s quest to increase the Flash player user base. The reason developers choose to use Flash for content is because of Adobe’s claim that Flash runs on 98% of Internet-connected computers. You can help change that by refusing to use Flash in any form.
Some may ask me, “How could you possibly use the Internet without Flash?” In the three weeks that I’ve been living without a Flash player, I have not run into any content I needed to view that was only available via Flash. I can still watch YouTube videos using Stephen Paul Weber‘s Free Youtube! script, which can be used with the Greasemonkey add-on for Firefox. Videos from other Flash-only video sites can usually be downloaded with one of the many video downloading tools available online. Most videos you find embedded in blogs and other sites (such as Charlie Rose’s interview with Lawrence Lessig) use one of the popular video hosting sites. It should not be too hard to convert most such Flash videos into standard embedded video using a “Free Youtube!”-like method. Once that’s done, the vast majority of useful content that once required Flash will be transparently available to people like me who don’t use Flash.