JavaScript的胜利

译文
开发 前端
JavaScript正在席卷整个世界,相关新型工具以及迅速普及开来。面对不可逆转的趋势,也许是时候对其敞开怀抱了。

还记得曾几何时,不少朋友出于安全性考虑而选择在自己的浏览器上禁用JavaScript。时至今日,这种作法已经变得荒谬可笑——理由很简单, JavaScript已经统治了整个网络世界。在这个充斥着平台多样性的全新计算时代,我们需要那些能够运行在任意设备浏览器中的应用程序。原生应用可能运行速度更快、调用更多JavaScript 无法染指的特定平台功能,但不可否认,云时代已然来临、我们则身处其中。有鉴于此,我们要继续坚持针对专一平台编写桌面或者移动应用、还是拓宽思路利用JavaScript开发一些任何平台都能够接纳的应用方案?

当然,这个问题的具体答案取决于该应用的实际特性。 JavaScript存在多种局限——出于安全原因, JavaScript无法对客户端中的文件进行读取或者写入。而且“真正的”程序员更倾向于不断强调此类缺点。不过JQuery以及多种其它框架的出现已经使JavaScript 获得了构建复杂应用程序的能力;此外,JSON(即 JavaScript Object Notation)能够全面取代XML的数据传输功能。更不用提Node.js,它刚刚在***一轮 InfoWorld Bossie评选中脱颖而出、帮助JavaScript 强势进军服务器端。

 

JavaScript能走多远?

堪称巧合的是,InfoWorld新技术论坛上同时出现了两篇文章,且都以探讨JavaScript的潜在发展空间为主:一篇由VisiCalc联合创造者、来自Alpha Software的 Dan Bricklin撰写,另一篇则由Adobe的Divya Manian 及Thibault Imbert联手推出。在《JavaScript在移动平台上击败原生代码》一文中, Bricklin针对JavaScript执行速度低于原生代码这一假设作出了回应:  

实际情况是,原生代码所能够完成的数学执行运算都能够在JavaScript上顺利实现(而且计算的相关时耗也并无不同)。上述观点忽略了这样一项客观现实,即对于各种不同类型的执行与计算工作而言,基于JavaScript的应用程序往往拥有与原生代码相同甚至更为出色的表现。

为什么会这样?Bricklin解释称,因为睿智的程序员多年以来一直在对浏览器进行调整、旨在优化此类执行工作的速度表现。此外,浏览器内高级执行能力也迎来了显著提高,其中***代表性的就是3D渲染功能。

从Adobe公司的立场出发,Manian与Imbert对 JavaScript的发展前景作出了预期,并提到了 Mozilla打造的研究项目asm.js——该项目“定义了一套JavaScript子集,可由编译器生成并通过JavaScript虚拟机实现高度优化。”更令人振奋的是,他们还对RiverTrail(一套由英特尔打造的、专门用于JavaScript开发工作的并行编程模型及API)进行了探究。两位作者还提到Adobe正在将新型HTML 5功能推进至标准化高度,其中包括Regions、Blend Modes以及 Shapes等。纵览整篇文章,我们发现Manian与Imbert相当于给Flash以及ActionScript这两套行将就木的技术方案又一记猛击。

JavaScript生态系统

JavaScript的胜利似乎给业界带来了灵感,如今每周都会有一款新型框架与世人见面、其它与JavaScript开发相关的工具也层出不穷:

ANGULARJS,一款用于将静态HTML页面转化为JavaScript应用的工具集,同时支持MVC架构。 BACKBONE.JS, 一款JavaScript库,允许开发人员向应用中添加结构并以Model形式表现数据。 BOOTSTRAP, 一款负责网页设备的框架,旨在与 JQuery进行对接。 ENYO, 一款面向对象型JavaScript框架,能够被用于创建HTML 5/CSS应用。 D3, 一款JavaScript库,能够在无需插件配合的前提下向浏览器推送矢量图形。 EMBER.JS, 一款前景广阔的JavaScript框架,用于开发MVC应用程序开发并配备丰富功能。 EMSCRIPTEN, 一款能够将C++转化为asm.js( Mozilla打造的高优化性JavaScript子集)的编译器方案。 JavaScript拥有成员众多的支持工具阵营——以上列举的仅是其中最为出色的少数解决方案。

其中大部分属于开源项目,这些工具的不断拓展也成为JavaScript强劲发展势头的重要驱动因素。

但是……JavaScript本身又如何?

不过,经验丰富的开发人员对此拥有存在抵触情绪。InfoWorld网站的Andy Oliver这样描述他所抱持的保留态度:

JavaScript一直都是备选开发途径中的一员—— 我们真正要做的是考量其是否适合自己的需求…… 我接触到的管理者喜欢JavaScript,因为它允许开发人员在其中使用jQuery、Node.js甚至利用 MongoDB处理一部分数据库事务。但我身边的开发人员显然持不同观点,他们讨厌日以继夜地进行 JavaScript开发……开发项目负责人同样持抗拒情绪,因为JavaScript牺牲掉了不少宝贵的数据库功能。

换言之,作为一种既易于学习、又有所局限的开发方案,JavaScript给编程工作带来了民主化进程 ——一旦开发人员的工作目标模糊不清、最终开发成果也将变得一团糟。

不过已经有越来越多优秀的JavaScript程序员逐步成长起来,其中不少都能在asm.js或者英特尔 RiverTrail并行编程模型的支持下打造出卓越的工作成果。而且毫无疑问,他们并没有在工作中受到缺乏相关工具的困扰。不过最出色的并不一定能获得最终胜利。对于x86指令集来说,笑到***的可能也是惟一有能力活到***的。我不知道JavaScript要如何实现自身扩展来迎合开发人员的工作需求,例如打造整体功能的丰富程度可与微软Office比肩的复杂应用程序。不过鉴于通过浏览器窗口观察世界的方式实在有点别扭,至少我本人不会把压箱底的资金投入到这类项目身上。

责任编辑:林师授 来源: 51cto.com
相关推荐

2013-09-29 10:44:54

JavaScript

2015-09-17 09:23:48

创业CEO胜利

2013-10-11 12:46:05

Linux操作系统

2013-01-25 10:53:25

Linux

2009-09-25 10:40:00

红帽

2019-03-25 21:08:03

华为

2015-09-18 10:47:42

库克乔布斯苹果

2012-08-13 10:22:30

网盘战争

2009-03-13 19:23:16

Windows 7IE浏览器

2011-12-22 22:53:48

HTC禁售苹果

2011-11-07 08:51:16

AMD裁员

2021-04-14 10:47:12

区块链比特币以太坊

2016-12-26 14:50:54

DeepMindGO

2015-10-15 10:27:01

安全港协议Safe Harbor数据传输

2023-08-16 10:43:37

微转型

2011-06-15 10:32:12

2023-07-17 13:44:23

2020-11-18 14:24:38

GitHubyoutube-dl库开源

2024-01-18 23:42:31

鸿蒙鸿蒙星河版

2022-10-09 14:26:48

区块链加密货币货币
点赞
收藏

51CTO技术栈公众号