2016年度 JavaScript 展望(上)

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

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

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

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

Node.js

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

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

2016年度 JavaScript 展望(上)

npm 包管理器的增加状况。图片来源:modulecounts.comjquery

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

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

2016年度 JavaScript 展望(上)

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

“全新的开发周期将成为最大的变化。每一年,咱们都会发布两个主要版本,而只有其一将获得长期的支持。这确实是史无前例的变化。此前,咱们并未真正意义上实现 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 插件市场中的多款高质量插件。

2016年度 JavaScript 展望(上)

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/

相关文章
相关标签/搜索