JavaScript的胜利
小作 2018-03-08 来源 :网络 阅读 1064 评论 0

摘要:还记得曾几何时,不少朋友出于安全性考虑而选择在自己的浏览器上禁用JavaScript。时至今日,这种作法已经变得荒谬可笑——理由很简单, JavaScript已经统治了整个网络世界。在这个充斥着平台多样性的全新计算时代,我们需要那些能够运行在任意设备浏览器中的应用程序。原生应用可能运行速度更快、调用更多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比肩的复杂应用程序。不过鉴于通过浏览器窗口观察世界的方式实在有点别扭,至少我本人不会把压箱底的资金投入到这类项目身上。

 

希望这篇文章可以帮助到你。总之,同学们,你想要的职坐标IT频道都能找到!

本文由 @小作 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程