Brad Neuberg, of the Gears team, took a stab at defining the “Open Web”. We at SitePen are very strongly in favor of the Open Web concept, because it’s the Open Web that has gotten us what we have today and will ultimately lead us to the best “web of the future”. I think that Brad does a good job laying out the characteristics that have made the web successful thus far.
The one thing that I disagree with is this part of “Transparency”:
An Open Web should have transparency at all levels. This includes being able to view the source of web pages;
I agree with every other requirement, though. People should be free to create what they want, and the tools they use should be open for interoperability and competition.
Brad set a careful boundary around his definition:
Not only do we expect all of these technologies to evolve, but we also expect that entirely new ones will grow up to give us new capabilities.
Which brings me to Adobe Flash, its close relative Flex, and Microsoft Silverlight. These tools are trying to reshape the landscape of the web, but are they part of the “Open Web”?
Adobe Flash grew up by filling the void for sound, animation and, later, video on the web. Flash is the de facto standard for video delivery on the web. It’s hard to argue against that, given that even MSN Video delivers videos via a Flash player.
The “is it the Open Web?” question comes up with Adobe Flex. One could always build entire sites in Flash, but doing so was almost entirely filled with downsides. As people have been working to build increasingly sophisticated applications in the browser, Flex has stepped up to provide a way to build complete applications using modern practices, and then deploy those applications within the Flash plugin that people already have in their browsers.
As of Flex 3, the Flex compiler is open source. Adobe has also opened up their Action Message Format (AMF) for speedy client/server communication. Flex is about as open as can be.
But, it still deploys to Flash. Adobe provides a specification for Flash’s SWF file format, but only if you agree not to make a “player” for SWF files. With that requirement, Flash as more than a video file format cannot be considered part of the Open Web.
There is an open source Flash player called Gnash. At present Gnash is listed as supporting “SWF v7+”. Adobe has evolved SWF considerably since then and Flex 2 and above require SWF v9. It will likely take a while for the Gnash developers to get up to v9, and by then Adobe will have likely moved onto v10 or 11. Because of Adobe’s licensing terms, the only tool for forward progress at the Gnash developers’ disposal is reverse engineering.
With Adobe providing free Flash players for Windows, Mac and Linux, the tempting question to ask is “why care if SWF is open?”
Why Open Is Important
Openness matters because the ability for an independent implementation to come along and shine is a key to continuing evolution. Consider the case of web browsers, which are based on standards that anyone can implement. Netscape had the #1 browser by far in the mid-90s and was eventually crushed by Internet Explorer both because of monopolistic practices and a better browsing experience. After Microsoft won that round, however, they disbanded the IE team. Since then, the state of the art has been pushed forward by Firefox, Safari/WebKit and Opera, among others. The work of those browser teams forced Microsoft to put an IE team together and start building a better browser.
As Joe Walker mentioned a couple months back, total monopolies can be bad and the only real escape route is having multiple implementations that the open market can choose from. Many open source projects and companies operate under a form of “Benevolent Dictator”. Think Linux and Apple. It’s only natural the market leaders appear. But, as long as there is open competition you can choose the leader because it’s a good choice and not because it’s the only choice.
Here’s something else to consider regarding the Flash Player: currently, you can’t have an application that is completely driven by Flash with HTML content displayed by your browser’s engine in the middle. That’s because the Flash plugin has control over the window’s drawing area. If SWF were open, I can imagine browser makers providing SWF rendering with the ability to have full HTML rendering capabilities available from within those SWFs. As it stands now, only Adobe could provide such functionality.
In the end, it’s all about the ability to ensure that the web will evolve in a way that serves the end users well.
Adobe does deserve credit for all of their moves to open up over the past couple of years. As of today, however, the most critical part is still closed off: the SWF file.
Microsoft Silverlight is a much more recent attempt to extend the fabric of the web. Silverlight targets precisely the same areas that Flash and Flex do: media (1.0) and applications (2.0), and offers similar features.
Microsoft’s earlier monopolistic practices have earned them a fair bit of distrust. However, over the past few years Microsoft has faced stiff competition for developers, and they have made big changes over earlier practices to keep developers and attract more. Much of their .NET framework has been standardized with ECMA. It’s open enough that there is an open source implementation (Mono) available.
This is relevant for Silverlight, which is built on .NET technologies. Within weeks of Silverlight’s announcement, the Mono project had a working prototype called Moonlight. Microsoft then went further and announced collaboration with Novell to help the Mono project get Moonlight up to speed.
It’s worth stressing that a key difference between Silverlight and Flash with respect to the Open Web is that it is possible to create alternative implementation of the Silverlight “player”. The open source Moonlight project is proof of that.
At this point, in April 2008, Silverlight’s problem doesn’t seem to be its openness. Silverlight’s problem is its installed base, or lack thereof. The only statistic I was able to find was a Microsoft claim of 1.5 million downloads per day. It’s hard to compare that with the study commissioned by Adobe listing Flash 9 penetration at better than 95%, but clearly the installed base Microsoft is looking for is not yet there, given that MSN Video is still Flash-based.
Dojo and Gears
And, finally, there’s Gears. Gears is a cross-platform, cross-browser, open source plugin sponsored by Google that extends the existing infrastructure rather than providing an entirely new application environment inside the browser. It provides application developers with a bunch of new tools today, and more are in development. Since Gears requires a plugin, many applications will have to wait for it to become as ubiquitous as Flash before they’ll add Gears’ features.
Free Market at Work
There is no standards body that can truly dictate what the web of tomorrow looks like. Developers will choose their tools as they build their apps, and users will pick the apps that they like the best. For those of us who are web developers, we should strive to ensure that the web of tomorrow remains open so that we have freedom in how we build our apps.