By now the press release has gone out announcing Adobe’s contribution to the Mozilla project of open source code for their ActionScript Virtual Machine (AVM2), and Brendan has blogged about it. I’m not directly involved with the project itself but have spent a few days reviewing press materials and doing press interviews, so I’ve had a chance to think about the significance of this announcement and what it means for the Mozilla project and for the web at large. Here are some of my thoughts.
First, a brief review of what this announcement is about (and what it’s not about). (I apologize for repeating material from the press release and elsewhere; I’ve found in the past that one can’t always assume that people have actually read such material.)
(The name “Tamarin” continues the Mozilla tradition of monkey-themed projects, including of course “SpiderMonkey” itself; like “SpiderMonkey”, “Tamarin” is a code name, not a trademark. As noted on the Tamarin project page, we thank Ben Parker for his generosity in allowing us to reuse the name of his existing Tamarin framework for development of Java Swing applications.)
Note that Tamarin is not an open source version of the Flash player; it is simply the virtual machine embedded within Flash Player 9, and does not include all the other components that make up Flash (including the bits that display graphics and play music and video). Adobe will continue to develop and distribute the Flash player on its own as a product separate from Firefox itself.
What it all means
Finally, the Mozilla project will gain yet another major corporate contributor in Adobe, one that’s made the largest single code contribution to the project since Netscape originally released the Mozilla source code in 1998. Not only do we gain an important new piece of technology that’s critical to our products, we and Adobe both gain the benefit of being able to more closely work together on ECMAScript language technology and avoid unnecessary duplication of efforts; this in turn will allow both the Mozilla project and Adobe to put more resources into other areas important for future innovations.
For Adobe, Mozilla, and others who might join in future, the Tamarin project represents for client-side web technology what the so-called “LAMP” stack does for server-side web technology: a move to not only centralize development around key specifications (ECMAScript for Tamarin, HTTP, SQL, etc., for the LAMP stack) but also to jointly develop and promote high-quality open source implementations of those specifications. Cooperating on such efforts helps grow the larger commercial and noncommercial ecosystems around the relevant technologies, to the ultimate benefit of all users of the web.
In praise of sustaining innovations
I believe this is a serious mistake. First, the terms “disruptive” and “sustaining” aren’t indicators of the technical merit of innovations; they simply indicate whether the degree to which innovations better satisfy the needs of existing customers (sustaining innovations) vs. appealing to new customers (disruptive innovations). In this sense even something as wonderful as Firefox is better viewed as a sustaining innovation than a disruptive innovation, as I’ve previously discussed.
Second, the cumulative impact of multiple sustaining innovations can be quite large, and can enable new disruptive innovations to take root and flourish. For example, as many people have pointed out, at least in theory Web 2.0-style applications could have been developed many years before they in fact appeared. The advent of Web 2.0 as we know it was really a function of multiple sustaining innovations that accumulated over time and interacted together:
incremental browser features like XMLHttpRequest that enabled basic AJAX techniques to be developed
continuous improvements in the performance, stability, and standards compliance of web browsers, which enabled cross-platform dynamic web applications to be more easily developed and debugged
continuous improvements in the cost and performance of server-side hardware and software, which enabled organizations to deploy significant web applications without multi-million dollar investments
continuous improvements in the ability of organizations to economically manage large numbers of servers, which enabled Google and others to deploy dynamic web applications reaching hundreds of millions of users
continuous improvements in the cost, performance, and ubiquity of broadband connections, which enabled more people to run dynamic web applications and actually enjoy the experience
Within each of these areas the individual innovations were relatively small: a minor cost or performance improvement made, a few more browser bugs fixed or new browser features added, a few million more broadband connections provisioned. But in toto these innovations added up to nothing less than a revolution in the way the web can be used.
In this sense everyone who contributes to the Mozilla project—fixing a Mozilla bug, making a performance improvement in Mozilla code (no matter how small), enabling Mozilla-based products to pass yet another standards compliance test, writing a Mozilla test case, creating or revising a Mozilla documentation page, and so on—helps change the future of the web and advance our goal of promoting choice and innovation on the Internet, to the ultimate benefit of everyone. Adobe is the latest such contributor, and most definitely a significant one; we thank them for their contribution and welcome them to the Mozilla project. Please join me in doing likewise!