2016年度 JavaScript 展望(上)

【编者按】本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是《jQuery UI 实践》一书的作者。 本文系OneAPM工程师编译呈现,以下为正文的第一部分。点此阅读第二部分

在过去的几年间,JavaScript 这种原本用于 Web 浏览器端的脚本语言,越来越多地出现在更广泛的软件应用中。现在,JavaScript 可用作服务器端代码,运行 iOS 与Android应用,甚至控制机器人。很难想象还有什么软件生态系统是 JavaScript 没有影响到的。

JavaScript 之所以能在这些新领域长驱直入,很重要的一个原因就是性能。然而,几年以前,在服务器端运行 JavaScript 还是完全不可想像的。在2008年,谷歌开始开发浏览器,并进军JavaScript 引擎世界,继而触发了一场性能大战,最终极大地提升了该语言的速度。最近的一些努力,诸如asm.js只是锦上添花罢了。

本文将会介绍,除了用 JavaScript 框架运行服务器端 JavaScript、创建移动 apps 以及桌面应用之外,未来将何去何从?文中将直接引述许多 JavaScript 解决方案的开发者之观点。让我们首先了解Node.js的发展,这或许是 JavaScript 的首个新领域。

Node.js

Node.js是一款基于谷歌 V8 JavaScript 引擎的开源式运行时环境。尽管许多公司与框架都试图在服务器端运行 JavaScript,Node.js 却是首个大规模成功做到这一点的运行时环境。

从2009年首次推出开始,Node.js 的流行度可谓突飞猛进。使用 Ndoe.js 的公司数不胜数,而此前新近建立的Node.js 基金会则包括 IBM,Intel,PayPal 以及 Microsoft 等巨头。Node.js 包管理器——npm,更是成为2014年软件世界中规模最大的包管理器,现在其包含的模块数是 Java 与Ruby等相似包管理器的两倍左右。

npm 包管理器的增长情况。图片来源:modulecounts.com

然而,Node.js 的成功并非没有经历波折。2014年底,一群开发者为此流行框架创建了一个分支,他们认为此前缺少活跃积极的新贡献者,导致 Node.js 版本更新太慢。这一新的框架,io.js很快虏获了众多追随者与社群的支持,这也让许多人担心 Nodo.js 世界将会长期处于分裂状态。幸好,2015年6月,Node.js 与 io.js实现合并,这些担忧也不复存在。

此次合并在一定程度上促进了 LTS 计划(Node.js 版本长期支持计划)的诞生。根据该计划,Node.js 每年都会指定一个版本为 LTS 版本,并为其提供长达18个月的支持。

这一开发周期的目的,是为了同时满足那些想走在前沿的开发者与需要稳定版本的大公司的需求。不可避免地,这样的开发周期也对 Node.js 的未来产生了重要影响。笔者就“2016年 Node.js 的最大变化”采访了 Node 基金会的Mikeal Rogers,他的回答如下:

“全新的开发周期将成为最大的变化。每年,我们都会发布两个主要版本,而只有其一将得到长期的支持。这确实是前所未有的变化。此前,我们并未真正意义上实现 LTS 计划。因此,对广大开发者而言,这是全新的变化;对企业而言,这是提高产品采纳率的新机遇。” ——Node 基金会,Mikeal Rogers。

Node.js 2016年展望

在2016年,Node.js 与其包管理器 npm 的采纳率有望进一步提升。诸如 Microsoft、IBM、Intel、Progress Software 等大公司对 Node 的持续采用,以及诸如长期支持计划等企业友好型功能的推出,可能预示着 Node.js 在企业间的采纳率持续增长,甚至取代一些.NET及 Java 提供的典型企业级解决方案。

此外,npm 模块的指数级增长也有望继续保持,因为 npm 最近推出的版本专注于为客户端 JavaScript 提供更好的支持,从而削减 Bower 等客户端 JavaScript 包管理器的需求。随着越来越多的开发者开始在 npm 注册客户端脚本与 jQuery 插件,npm 的触角只可能进一步延伸。实际上,根据 Mikeal Rogers 的观点,npm 增长的主因其实是 Node.js 生态系统的进一步完善。

”几年前,我对 npm 的增长率进行量化,进而创建了一副 npm 增长预测图。当时,许多人认为这图简直是天方夜谭,因为图中预测在一年多的时间里,模块数量将超过10万,而且增长率不会趋于平衡状态。但实际情况却是,仅仅数日,模块数量就超过了10万,这让我也颇感惊讶。

如果你仔细了解 npm 的增长模式,你会发现推进 npm 持续增长的动力来自 node.js 生态系统。这里是为众多使用案例创建子平台的最佳环境。即便生态系统的一些部分会趋于平衡状态,但是新的快速成长的生态系统很快就会取而代之。” ————Node 基金会,Mikeal Rogers。

作为以上观点的佐证,几乎本文涉及的所有 JavaScript 解决方案,包括 Cordova,React Native 与 NativeScript 都使用 npm 作为包管理器。如果你在 npm 搜索一下 “jquery”、“polymer”、“meteor”或“react”,就能了解 npm 现在的规模是多么庞大。当然,随着 npm 的普及率持续增长,Node.js 的采纳率也是一路高歌猛进。作为软件世界首个主流的服务器端 JavaScript 框架,其未来可谓一片光明。

下面,让我们来一些不在服务器端运行 JavaScript,而是使用 JavaScript 运行移动 apps 的技术。

PhoneGap and Cordova

与 Node.js 是首个将 JavaScript 运行在服务器端的主流解决方案相类似,PhoneGap 是首个使用 JavaScript 运行本地移动 apps 的主流解决方案。最初,PhoneGap 于2009年由 Nitobi 创立,在 2011年10月由 Adobe 公司收购。作为收购的一部分,PhoneGap 的源代码被捐赠给 Apache 软件基金会,此项目也更名为 Cordova。如今,Cordova 已经成为一个免费的开源框架,得到许多公司的支持。而 PhoneGap 则是 Adobe 所有的一个 Cordova 分支。

多年来,Cordova 都在与性能不佳的名声做斗争。其中,最广为人知的抱怨出现在2012年,出自科技界最有影响力的人之口:

“当我反省过去几年的经历时,发现我们公司犯下的最大错误,是在 HTML5 中投入了太多努力……” Facebook 创始人,Mark Zuckerberg。

从2012年开始,一些公司开始介入解决 Cordova 的性能问题。这催生了IonicOnsen等以性能为中心的 UI 框架,以及Kendo UI Mobile,由PhoneGap 团队与 Telerik 公司联合开发的工具改进,还有Crosswalk提供的全新 Web 视图,以及 Telerik 插件市场中的多款高质量插件。

Telerik 插件市场

除了这些公司提供的性能援助,由移动 OS 创造者提供的新功能,诸如Android 的自动更新 Web 视图iOS 的新 WKWebView API,有效地帮助了 Cordova 的性能提升。基于此,笔者采访了前 Adobe PhoneGap 团队成员 Brian LeRoux,咨询他对 Cordova 的未来作何设想。

“现而今,Cordova 已经变得相当稳定。我们努力保持简洁,用插件接口实现各种功能,并尽可能在 Android M 与 iOS 9 等平台更新中保持主动。虽然经历了几年的颠簸,但是现在’小模块化’的思想终于开始落地生根,这让我颇感欣慰。如果不是要在自己的项目中延展使用 Cordova,终端设备开发者恐怕无法了解这一思想的好处。” Brian LeRoux

Cordova 2016年展望

与 Node.js 相似,Cordova 的稳定性对于刚开始在移动开发领域试水的大公司而言尤为诱人。而使用 Cordova 结合 HTML,CSS 以及 JavaScript 打造移动 apps 的方法对众多 web 开发者来说也极具吸引力,尤其是与使用 Xcode 与 Android Studio 进行本地开发的方式相比。

尽管 Cordova 的普及率持续走高,其开发方式却遭到了两个方面的挑战。挑战一来自努力推广渐进式应用(progressive apps)的谷歌,此类应用包含启动时屏幕、主屏幕布局以及离线访问等功能。目前,渐进式应用仍处于早期阶段,其功能仅限于 Android 版 Chrome 浏览器。然而,在2016年,谷歌肯定会继续推广渐近式应用的概念。

Cordova 开发的第二个更为迫切的挑战来自 JavaScript 世界的一项新近发展:使用 JavaScript 构建真正的本地移动应用。

本文的后半部分将重点介绍2016年本地移动应用(Native mobile apps)与桌面应用可能的新发展,以及 JavaScript 可能触及的新领域。敬请期待。

本文系OneAPM工程师编译呈现。OneAPM Browser Insight是一个基于真实用户的 Web 前端性能监控平台,能够帮大家定位网站性能瓶颈,网站加速效果可视化;支持浏览器、微信、App 浏览 HTML 和 HTML5 页面。想阅读更多技术文章,请访问OneAPM 官方技术博客

本文转自OneAPM 官方博客

原文地址:http://developer.telerik.com/featured/what-to-expect-from-javascript-in-2016-beyond-the-browser/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容