技术开发 频道

微软JavaScript发力 抗衡Google Dart

       【IT168 评论】摘要:一边是Google对Dart的拼命吆喝,一边是微软对JavaScript的不温不火。看似两种脚本语言之争,背后的本质却是IE与Chrome两大浏览器的角逐。巧合的是,Chrome浏览器市场份额刚超过Firefox,跃居第二,仅次于IE。

  Google推崇Dart,希望解决JavaScript的缺陷,丰富Web内容,优化网站性能。微软却唱起了反调,微软昨日在博客上声称,JavaScript正快马加鞭,自身在不断改善。

  Google意识到JavaScript在未来Web开发应用中起到的不可估量的作用,因此迅速推出了Dart这种结构化的Web编程语言。Google对Dart的定位很明确,目的就是最终取代JavaScript。Google的盟友对力挺Dart起到了左膀右臂的作用,他们声称,“JavaScript存在致命的缺陷,要弥补这些缺陷的话,需要与JavaScript一刀两断”。然而,Dart终究是需要依赖于浏览器的支持,在这个问题上,微软的JavaScript团队拥有足够的话语权。想要说服他们在IE中支持Dart实属不易。

  解读JavaScript:众星捧月

  JavaScript是一种基于对象和事件驱动、并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。

  JavaScript拥有现任技术所无法比拟的经典好处。一方面,资深的程序员对JavaScript了如指掌。另一方面,随着jQuery浏览器的升级,运行JavaScript的性能也有着显著的飞跃,有许多预先编写的软件库比如jQuery赋予了Web开发人员强大的编程能力,创建了一个稳定的良性循环周期。在这样的局势下,想让编程语言的后来者站稳脚尖,实在是举步维艰。

  一直以来,IT巨头公司微软、Mozilla,甚至包括发力Dart编程语言的Google都在不断地努力,在不断地完善JavaScript技术。

  JavaScript的崛起 领跑Web大时代

  早在20世纪90年代,在第一场浏览器大战中,微软推出的IE对抗 Netscape的浏览器,大获全胜。Netscape发起了一个新项目JavaScript. Netscape公司在最初将其脚本语言命名为LiveScript。在Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”。JavaScript实际上与Java并无多大关系,就在20世纪90年代中期,Sun Microsystems语言一度盛行的局势下,Sun的联合创始人Bill Joy将JavaScript视为Java如影随形的伙伴。该语言的发起人Mozilla首席技术官Brendan Eich在回顾JavaScript历史的时候表示,“我用了十天的时间来创建JavaScript原型”。

  在Netscape Navigator 2.0主宰的时代,JavaScript就入主为安了。从那以后,JavaScript日益普及,越来越成熟了。

  许多人期许着Java能够实现在Web编程中创建更多的交互效果,但是真正实至名归的当属JavaScript.现在看来,尽管JavaScript存在着很多修复补丁,但是JavaScript也正在肩负着更为沉重的使命。

  “1998年,一个较为复杂的JavaScript应用程序大概是几十行的代码,到2008年,处于领先的高端Web应用程序,像Hotmail、Gmail、以及CNN.com包含了成千上万的JavaScript代码。”微软JavaScript团队成员Shanku Niyogi, Amanda Silver, John Montgomery, Luke Hoban, and Steve Lucco表示。“时至今日,有各种各样的Web应用程序,是用上百万行JavaScript代码编写而成,这些Web应用程序和我们运行在桌面上的应用程序大体相似。”

  动态JavaScript VS 动态Dart

        【IT168 评论】JavaScript是一门动态语言,与传统的先声明变量后使用的静态语言C或Java相比,一个直接的好处是无需提前声明变量,便可用。变量的实质是存储信息,比如数字或者文本。JavaScript作为动态语言,其特点是使用非常灵活,但是以牺牲性能为代价的。因为浏览器在解释执行JavaScript的同时,浏览器元素JIT编译器能将程序员编写的JavaScript语言直接转化成计算机所能识别的指令,需要花点时间去判断变量的各种可能类型。Dart的目标是将JavaScript的动态声明特性回归为静态先声明后使用的方式,在这一点上,已经与C或Java语言就没有多大差异了。

  微软力挺JavaScript 伸出橄榄枝

  微软不仅在情感上声援JavaScript,并且付诸了很多行动,提出若干建议,包括对JavaScript语言本身的改进,浏览器对JavaScript的增强支持。具体如下:

  1、JavaScript支持数值运算符、处理文本函数、更加方便处理货币与日期格式。

  2、微软在HTML5实验室提供了原型化软件来方便人们体验这项创新技术。•

  在HTML5与Dart的大背景下,微软对JavaScript也提出了与时俱进的殷切希望,微软JavaScript团队人员表示,“随着Web网站向Web应用的转型,会有越来越多的Web开发人在用HTML5来创建新的体验,在不影响它的简单性、灵活性、以及性能的前提下,我们觉得JavaScript需要经历一种转型,”在没有直接提及Dart编程语言的情况下,他们呼吁的是一种演变而非革命:“整个Web开发社区需要一种更为广泛的方法来提高成功的几率。”

  Google Chrome杀手锏 增量垃圾回收技术

  即使真的有那么一天,Google的Dart能够脱颖而出,基于JavaScript的Web应用还会是无处不在。对于Google来说,要想取代JavaScript,提高运行速度才是王道。Chrome浏览器也一直致力于改善JavaScript性能。

  这些年来,Google Chrome与IE、Safari、Opera、以及Firefox等各大浏览器厮杀,夺取了浏览器市场第二的宝座,实属不易。但现在它肩负着更大的使命,将矛头直指JavaScript性能的改进。为此,Google不遗余力推出了适用于开发人员的Chrome版本,为了进一步提高软件的反应性能,Google还在V8 JavaScript引擎中新增了一个特征Incremental Garbage Collection。Google表示,“在提高性能和降低内存使用率的同时,V8新增的GC能够动态减少因内存回收而产生的暂停时间,并且提高了Web交互性能。”

  Incremental Garbage Collection的原理是Garbage Collection能够定期释放掉程序本该释放的内存空间,这是一项非常重要的技术。但是这个过程可能会导致电脑死机。Incremental Garbage Collection能够将这个过程剪切成不同的步骤,从而减少暂停时间。据测试人员表示,“Google使用V8基准来测试JavaScript性能,并且证实了它的成功。在我们的测试中,要呈现一个完整的框架,最大的时间值从原来暂停的272毫秒降低到50毫秒。”。

  而更为难能可贵的是,相比于一个更为庞大的JavaScript项目,要提高Google的交互性性能可谓是难上加难。因为这需要释放更大的内存空间。Chrome却力压群敌,做到了这一点。

  另一大浏览器厂商Mozilla同样致力于Incremental Garbage Collection的工作,“这个技术很难实现,我们不知道会有多少艰难险阻,但我们会朝着目标努力。“

  参考英文原文:

  http://news.cnet.com/8301-30685_3-57330431-264/microsoft-shoots-down-googles-dart-language/

0
相关文章