Adobe claims that we are a closed system, and that Flash is open, but in fact the opposite is true.
I find it amusing, honestly. Flash is an open specification.
So who is really open?
It all depends on your definition.
Adobe’s definition of open
Adobe employees tend to define a platform as open if it allows any application or content to be used on the platform (ie. it is open to anyone). By this definition, Adobe’s Flash Player is open because it allows you to run any Flash content; no approval is required by Adobe before running Flash content. Conversely, Apple’s iPhone OS is not open because it does not allow you to run any application you want, only those that Apple approves.
Apple’s definition of open
While Adobe’s CEO is correct that a gratis specification of most of the Flash format is available online, this does not make it an open standard as I’ve previously pointed out. Despite having a gratis specification, there is only a single implementation of Adobe’s Flash that will run all Flash content: Adobe Flash Player. Adobe actively encourages developers to only test with Adobe Flash Player (ie. their CS5 site: “Publish content virtually anywhere, using … Adobe Flash Player for browser-based experiences.”) and developers tend to do exactly that (according to a GitHub developer, “One of the biggest benefits of Flash is that you only have to target one implementation: Adobe’s.”).
As a result, few Flash blobs work in a non-Adobe Flash player, just as few complex Windows apps work correctly in Wine because most Windows app writers only test on Windows. So an “open” specification of Flash is effectively useless because Adobe strongly discourages its use by promoting Flash as a way to avoid the need to test on multiple implementations. Update (2010-05-03): In fact, a non-Adobe player that is fully compliant with all Flash content is illegal, as rtmpdump’s takedown has shown. Section 103 of the DMCA allows Adobe to sue any organization that implements RTMPE (a poorly implemented encryption scheme for RTMP) without Adobe’s permission, which is exactly what they’ve done. The whole point of an open specification is that anyone can implement it without paying anyone or asking anyone’s permission. In Adobe’s view, “open” specifications are purely for show and no one should be allowed to implement Flash but Adobe.
Apple does indeed embrace open standards for the web. It does this for practical reasons: standards allow Apple to precisely control the software that runs on their system as long as it adheres to the standard. This leads to better battery life and touch screen user experience. However, Apple tends to support standards only when it does not control a market (as is the case in desktop operating systems and web browsers); Apple’s standards support does not extend to markets where Apple has a relative monopoly. iTunes is notorious for its use of DRM that is incompatible with any devices but Apple’s (music DRM is gone now, but video DRM remains and both are provided in formats that are heavily patented by Apple). Apple does not freely publish the specifications need to write applications for the iPhone, iPod, or iPad; developers must pay $99/year for the “privilege” of developing, even if it never earns them a dime. Even if it did publish the specifications, Apple still controls access to the App Store, the only legal way (in most developed countries) to add functionality to the device. This makes it impossible to run an application on handheld Apple devices without Apple’s permission.
Update (2010-05-03): Both Adobe and Apple oppose open video on the web. Neither company ships open codecs such as Theora and Dirac. Steve Jobs casually mentions that “A patent pool is being assembled to go after Theora …”. And Adobe has not added Dirac or other codecs to Adobe Flash Player as I have suggested to them. As a result, creating video content that will work on either company’s devices requires one to navigate the patent maze of H.264 and similar proprietary codecs. Ben Ward has it right: H.264 is not and cannot be part of an open web stack. For more on H.264, including how the ownership of your work is compromised the second you press “record”, see Why Our Civilization’s Video Art and Culture is Threatened by the MPEG-LA. For more on codecs in general, and the business motives behind proprietary codecs, see The codec dilemma.
Update (2010-04-30): With respect to Adobe, I think Steve Jobs hits the nail on the head with this statement:
Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.
Of course Apple is not exactly “leaving the past behind”. The iPhone Developer Program License Agreement is much more restrictive than any license required to develop even Windows programs and has the same properties as the Windows API: there is no formal specification and even if there were, people only test on one implementation anyway (as a result, Windows apps only work on Windows just like iPhone apps will only work on the iPhone/iPod/iPad). I think Apple is growing further and further away from its roots in 1984, as one jailbreaker so eloquently puts it.
Both Apple and Adobe use the term “open” to refer to themselves, but define the term quite differently. This makes it difficult to give the word “open” any definitive meaning. I think it may be best to avoid the term altogether, as Stallman recommends, to avoid confusion.
We should instead start focusing on the underlying reasons for “open”, such as interoperability. When done right, technology allows people to share any type of information using any type of device. Information sharing need not be artificially limited by device-specific formats (ie. Apple DRM) or “universal” runtimes that don’t run everywhere (ie. Flash; see Why Flash is doomed). Let’s build and use technology that maximizes long-term usefulness, not through information silos, but through standards.