coofucoo:
不知道我的消息是否太古董。反正当我听到adobe要尝试将虚拟机潜入浏览器的时候真是兴奋之极。想想java将虚拟机的概念引入操作系统平台后,整个软件开发界发生了多大的变化!同样的事情在浏览器上即将重现。
当然,这还都是刚刚开始。当初java也不过是为了做个小盒子而已。今天在浏览器中嵌入虚拟机,总体上是好的,但是能否成功还要看市场的成熟度。如果市场发展的过慢,显然所谓的“卷毛猴”也许前途未卜。但是最起码这表明业界开始注意到ECMAscript发展的缓慢了。相对于mozilla系列,opera系列的频繁更新,微软还是采用老办法,试图将IE与操作系统捆绑。这个1.0时代的巨人现在正在承受自己笨重身躯的痛楚。慢慢的,等他意识到自己在浏览器市场的威胁和浏览器市场的快速成长,他就会放下自己的假面了。
20多年前微软通过操作系统统一了市场,今天,浏览器即将遮盖他的光芒。今天Adobe首先开始了这次行动,借助与开源的影响力,不知道Adobe能否成为未来的微软。但毋庸置疑,Adobe加速了这一技术变革。虽然托夫勒说过,先修路,后有沃尔玛。但是我们现在认识到,即使在出现了Google这样的内容巨擎之后,修路的问题上,还是有很多机会的。
我已经按耐不住了。:)

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.

The basics

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.)

Adobe's Flash player executes applications written in ActionScript, a programming language that (in its current version, ActionScript 3.0) is based on the ECMAScript language specification and is therefore a sibling to JavaScript. As part of Flash Player 9 Adobe introduced a new virtual machine (AVM2) for executing ActionScript applications; among other things, AVM2 features a Just In Time (JIT) compiler that can convert ActionScript bytecode (the form into which ActionScript is initially compiled) into native machine instructions for much faster execution of ActionScript 3.0 applications.

Adobe has now taken the code for that AVM2 virtual machine implementation and released it as open source through the Mozilla project as Tamarin. Adobe will continue to develop the Tamarin code, working with other developers from the Mozilla community, and will be using it as the basis of the ActionScript virtual machine in future versions of their own products. The Mozilla project will use Tamarin as part of future versions of SpiderMonkey, the C-based JavaScript engine used in Firefox and other applications, and will include it in future versions of Firefox (beyond Firefox 3) that are built using Mozilla 2 technology.

(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

What does this all mean? Let's start with users of Firefox and other applications based on Mozilla technology. They'll get future versions of Firefox and other Mozilla-based products that will run JavaScript-based applications significantly faster, including in particular AJAX-enabled web applications commonly thought of in connection with the Web 2.0 meme. (In its own testing Adobe has seen up to a ten times speedup of ActionScript applications due to the introduction of the AVM2 technology.) Since Firefox and Firefox extensions are partly written in JavaScript (as are other applications built on Mozilla's XUL technology), users will also likely see performance gains in some areas of Firefox itself.

Developers of web applications and XUL-based applications will also realize the benefits of improved performance; they'll be able to develop and deploy new and innovative applications for which the performance demands on current JavaScript engines are just too great. They'll also be able to take advantage of new JavaScript language features coming with ECMAScript 4th Edition, and in addition will be more able to leverage their knowledge of JavaScript in developing Flash applications using ActionScript (or vice versa).

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

Some might read the above and say, So Tamarin will enable web applications to run faster, maybe even an order of magnitude faster, and make JavaScript and ActionScript more compatible; what's the big deal? We're conditioned to look for world changing, break the mold developments in technology and to dismiss merely incremental improvements. To use the terms popularized by Clayton Christensen, we think disruptive innovations are sexy, and sustaining innovations are not.

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!

 
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐