JavaScript正凭借新型工具与功能提升以极度夸张的速度吞噬整个世界。我们是否应该接受这一无法逆转的趋势? 还记得那些旧日往事吗?很多用户因为担心安全问题而在浏览器中禁用JavaScript。如今这样的担忧已经显得相当可笑——JavaScript已经成为统治网络世界的绝对王者。 在以平台多样性为标志的计算时代之下,我们需要能够运行在任何设备浏览器当中的应用程序。原生应用的运行速度也许更快、对于特定平台的功能利用效果 也非JavaScript可及,但云时代的来临显著缩小了二者之间的差距。现在摆在开发人员面前的道路有两条:针对桌面系统或者移动平台开发只能运行在单 一环境下的应用,或者编写能为任何用户所使用的JavaScript应用。 当然,以上问题的具体答案取决于应用程序的具体特性。JavaScript拥有明显的局限性——举例来说,出于安全原因,JavaScript无法 读取或者写入客户端中的文件。而且“真正”的程序员更倾向于利用自身技术水平在应用中使用大量快捷的开发方式。不过JQuery及其它一系列框架的出现让 JavaScript具备了开发高复杂性应用程序的能力,而JSON(即JavaScript 对象表示法)能够实现除XML之外的全部数据传输需求。更不用提Node.js为JavaScript带来的强大服务器端事务处理能力。 JavaScript还能走多远? 巧合的是,InfoWorld网站新技术论坛上的两篇最新博文都在讨论JavaScript的未来发展潜力:一篇由VisiCalc联合创始人兼技 术老鸟Dan Bricklin所撰写,另一篇则由Adobe公司的Divya Manian与Thibault Imbert撰写。 在题为《JavaScript在移动平台击败原生代码》的文章中,Bricklin针对JavaScript运行速度低于原生代码的假设提出质疑: 尽管总体来说,原生代码在数学计算方面的执行速度确实要远远胜过JavaScript,但这种观点忽略了众多应用程序之间彼此独立的运行状态。在很多运行过程中,JavaScript应用程序的性能表现往往能够赞同甚至优于原生代码。 为什么会这样?根据Bricklin的解释,这是因为众多杰出的程序员已经花了数年时间对浏览器进行调整,从而实现了运行过程的极端优化。另外,浏览器中已经逐步出现多种先进的运行机制进展,例如3D渲染。 作为Adobe公司的代言者,Manian与Imbert分析了JavaScript的未来前景并提到Mozilla公司的研究项目asm.js。 该项目“定义了一套JavaScript子集,通过编译器生成并利用JavaScript虚拟机实现高度优化。”更令人兴奋的是,他们还探讨了 RiverTrail这款由英特尔负责开发的并行编程模型及API——当然也是专为JavaScript所打造。两位作者同时谈到,Adobe公司建议为 HTML 5功能引入新的标准化机制,其中包括Regions、Blend Modes以及Shapes等。 通过或明或暗的各种迹象,我们几乎可以断定,Manian与Imbert通过自己的博文给Flash及ActionScript的坟墓又添了一把土。 JavaScript生态系统 JavaScript的胜利宣言绝非凭空想象——几乎每周都会出现新的JavaScript框架以及与编码相关的其它工具。除了jQuery与Node.js,今年InfoWorld网站评选的最佳开源软件奖中出现了七位JavaScript赢家的身影,它们分别是: ◆ AngularJS,一套用于将静态HTML页面转化为JavaScript应用程序的工具集,同时提供对MVC架构的支持。 ◆ Backbone.js,一套JavaScript库,帮助开发人员将结构作为模型添加到应用程序及表示数据当中。 ◆ Bootstrap,一款响应式Web设计框架,旨在与jQuery相结合。 ◆ Enyo,一款面向对象的JavaScript框架,能够被用于创建HTMl 5/CSS应用。 ◆ D3,一套JavaScript库,能够在无需涉及插件的前提下在浏览器内实现矢量图形处理。 ◆ Ember.js,一款极具发展前景的JavaScript框架,用于开发具备丰富功能的MVC应用程序。 ◆ Emscripten,一款将C++代码转化为asm.js形式的编译器,属于由Mozilla公司推出的经过高度优化的JavaScript子集。 上述阵容可谓极度强大——而且这还只是JavaScript麾下力量的冰山一角。这些工具仍处于迅猛的发展态势之中,且大部分属于开源项目,它们的存在将继续推动JavaScript的未来改进。 |