InfoQ

新闻

Mozilla众项目勾画出网页脚本的未来

作者 James Estes译者 陈俊 发布于 2007年8月14日 下午12时3分

社区
Java
主题
JavaScript
标签
IronPython,
IronRuby

以Mozilla为中心的5个不同的子项目最近新话题不断。它们都是非常有实力的项目,预示着浏览器脚本语言未来的发展方向。可以看以下的介绍,来熟悉一下这些项目:

    SpiderMonkey 是Mozilla JavaScript 引擎的代号。它是第一个Javascript引擎,Netscape浏览器就用了它,所以并不新鲜。

    Tamarin 是Adobe 去年11月时免费捐献给Mozilla的ActionScript引擎。Tamarin是个即时(Just-In-Time)编译器,它可以把Javascript解释成机器语言,并具有更好的垃圾回收机制。同时它也支持ECMAScript 3,并有希望会支持ECMAScript 4(JS2)规范。

    ActionMonkey 正在集成SpiderMonkey和Tamarin两个项目。二者集成后的产品将会成为Mozilla 2平台的引擎。这将会给Firefox和其它基于Mozilla的应用带来性能上的改进,并兼具Tamarin支持最新规范的优点。

    ScreamingMonkey是让Tamarin引擎运行在非Mozilla浏览器上的项目。这项目让其它的浏览器(首先是IE)也能得到Tamarin的好处。从此能让其它浏览器共享一个同一起源、快速、标准的引擎。

    IronMonkey 项目希望能建立微软通用中间语言(Microsoft's Common Intermediate Language,CIL)和ActionScript字节码(ActionScript Byte Code,ABC)之间的映射关系。这项目可以让用IronPython和IronRuby编写的程序运行于Tamarin之上。当与ActionMonkey和ScreamingMonkey结合时,就能让Ruby或Python的代码运行在浏览器上。

所有这些项目确实使我们对浏览器脚本语言的前景感到兴奋。我们期望着各方面的改进,如性能方面的改进,ECMAScript 4的支持,更少的浏览器兼容技巧(至少在脚本引擎上如是),支持不同的脚本语言。虽然这个前景令人振奋,但并不是每一个人都认同这条道路,至少不是每个人都赞成选择Tamarin作为虚拟机。其中有些反馈谈到也许Java虚拟机或者是Mono是更好的选择。Java现在已经支持JRuby和Jython,解决了支持“多种不同的语言”的问题,在Java虚拟机上运行的Rhino引擎也有不错的性能表现。Mono也同样满足这两个条件。John Resig总结了选择Tamarin背后的原因:

……简而言之:非技术的原因是,选择Tamarin要比选择那些有知识产权和许可证问题的要好;技术上的原因则与编译速度、文件大小、内存需求量有关。
查看英文原文:Mozilla Paints the Future of Web Scripting with Monkeys

1 条回复

回复

分类和主题不适当吧? 发表人 Junyin Wu 发表于 2007年8月14日 下午8时17分
  1. 返回顶部

    分类和主题不适当吧?

    2007年8月14日 下午8时17分 发表人 Junyin Wu

    社区
    Java
    主题
    JavaScript

    两者不是同一个东西吧?

独家内容

专访开源项目Amoeba架构师陈思儒

DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。

使用JSF、Ajax和Seam开发Portlets(2/3)

作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。

Jeff Barr谈论Amazon Web服务

Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。

用Erlang实现领域特定语言

Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。

基于Rails的企业级应用剖析

本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。

JavaFX技术预览

JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。