Brendan Eich has a post on the Mozilla roadmap blog entitled The Open Web and Its Adversaries which references one of my posts on whether AJAX will remain as the technology of choice for building Rich Internet Applications. He writes
open standards and open source both empower
user-driven innovation.
This is old news to the Mozilla user community, who have been
building and
feeding back innovations for the
life of the project, increasing over time to include Firefox
add-ons and GreaseMonkey
user scripts. (BTW, I am pushing to make
add-on installation not require a restart in Firefox 3, and I intend to help
improve and promote GreaseMonkey security in the Firefox 3 timeframe too.)
Without forking, even to make private-label Firefoxes or FlashPlayers, users
can innovate ahead of the vendor's ability to understand, codify, and ship the
needed innovations.
Consider just the open standards that make up the major web content
languages: HTML, CSS, DOM, JS. These mix in powerful ways that do
not have correspondences in something like a Flash SWF.
There is no DOM built inside the FlashPlayer for a SWF; there's just a
display list.
There's no eval
in ActionScript, and ActionScript features
a strict mode that implements a static type checker (with a few big loopholes
for explicit dynamic typing).
You can't override default methods or mutate state as freely as you can
in the browser content model.
Making a SWF is more like making an ASIC -- it's "hardware", as Steve Yegge
argues.
This is not necessarily a bad thing; it's certainly different from the Open Web.
...
Dare Obasanjo
argues
that developers crave single-vendor control because it yields interoperation and
compatibility, even forced single-version support. Yet this is obviously not the
case for anyone who has wasted time getting a moderately complex .ppt
or .doc
file working on both Mac and Windows. It's true for some
Adobe and Microsoft products, but not all, so something else is going on. And
HTML, CSS, DOM and JS interoperation is better over time, not worse. TCP/IP, NFS,
and SMB interoperation is great by now. The assertion fails, and the question
becomes: why are some single-vendor solutions more attractive to some developers?
The answers are particular, not general and implied simply by the single-vendor
condition.
I'm surprised to see Brendan Eich conflating "openness" with the features of a particular technology. I'll start with Brendan's assertion that open standards and open source enable user-driven innovation. Open source allows people to modify the software they've been distributed however they like. Open standards like HTTP, FTP and NNTP allow people to build applications that utilize these technologies without being beholden to any corporate or government entity. It's hard for me to see how open standards enable user-driven innovation in the same way that open source does. I guess the argument could be made that open source applications built on proprietary technologies aren't as "free" as open source applications that implement open standards. I can buy that. I guess.
The examples of Firefox
add-ons and GreaseMonkey
user scripts don't seem to be an example of open source and open standards enabling user-driven innovation. They seem to be examples of why building an application as a platform with a well-designed plugin model works. After all, we have plugins for Internet Explorer, Gadgets for Google Personalized Homepage and Add-ins for Visual Studio which are all examples of user-driven innovation as plugins for an application which are built on a proprietary platform often using proprietary technologies. My point is
open_source + open_standards != user_driven_innovations;
Being open helps, but it doesn't necessary lead to user driven innovations or vice versa. The rest of Brendan's post is even weirder because he presents the features of Flash's ActionScript versus AJAX (i.e. [X]HTML/CSS/Javascript/DOM/XML/XmlHttpRequest) as the conflict between properietary versus open technologies. Separating content from presentation, dynamic programming languages and rich object models are not exclusively the purvey of "open" technologies and it is disingenious for Brendan to suggest that.
After all, what happens when Adobe and Microsoft make their RIA platforms more "Web-like"? Will the debate devolve into the kind of semantic hairsplitting we've seen with the OpenXML vs. ODF debate where Microsoft detractors are now attacking Microsoft for opening up and standardizing its XML file formats when their original arguments against the file formats where that they weren't open?
Personally, I'd like to see technical discussions on the best way to move the Web forward instead of the red herring of "openness" being thrown into the discussion. For instance, what are the considerations Web developers should make when they come to the crossroads where Adobe is offering Flash/Flex, Microsoft is offering WPF/E and the Mozilla & co are offering their extensions to the AJAX model (i.e. HTML 5) as the one true way? I've already stated what I think in my post What Comes After AJAX? and so far Adobe looks like they have the most compelling offering for developers but it is still early in the game and neither Microsoft nor Mozilla have fully shown their hands.