图片 6

摆脱浏览器限制的JavaScript

OpenJS
基金会发文宣布,开源网络框架
Electron 已加入基金会的孵化计划。Electron 是一款基于 Node.js 和 Chromium
的跨平台桌面应用开发工具,支持使用 JavaScript、HTML 和 CSS
编写跨平台的桌面应用程序。它被广泛用于许多著名的应用程序,包括
Discord、Microsoft Teams、Skype,Slack、Visual Studio Code 等。

作者:安冬 (沪江Web前端开发工程师)
本文原创翻译,转载请注明作者及出处。
原文地址:http://developer.telerik.com/topics/web-development/JavaScript-2017-beyond-browser/

OpenJS 基金会致力于通过提供中立的组织来托管和维持项目,来支持 JavaScript
生态系统和 Web 技术的健康发展,以及为整个社区的利益提供资助。该基金会由
32 个开源 JavaScript 项目组成,包括 jQuery、Node.js 和 Webpack
等,并得到了包括谷歌、IBM、Intel 和微软等在内的 30 家公司的支持。

技术世界在发展,JavaScript也在同步发展。JavaScript在软件世界建起地盘的头几年,它从没想过涉足服务应用程序、移动端应用程序以及机器人之类业务。今天,随着JavaScript的发展,这门语言已经进入了聊天机器人、虚拟现实以及物联网等新领域。

“对于 Electron 项目负责人对 OpenJS
基金会所表现出的信任,我们感到兴奋和荣幸”,OpenJS 基金会执行董事 Robin
Ginn 说道。“Electron
是一些最知名的公司和应用程序使用的强大开发工具。我代表社区,期待与
Electron 合作,并期待他们将做出的惊人贡献。”

除了不断开拓新领域,在服务端、移动端以及桌面端应用等生态中,JavaScript的地位也越来越稳固。在本文中,我们将首先回顾去年所做的若干预测,然后展望2017年JavaScript会在浏览器之外开拓哪些新地盘。先来看看JavaScript在服务端应用程序中的情况吧。

图片 1

Node.js

Node.js是构建服务器端应用程序的开源运行时库,这类JavaScript代码不是在浏览器中运行的。在过去的几年里,Node已经从初创公司中流行的技术框架演变为各种规模公司所使用的主流开发技术。

Node的包管理工具npm也不再是托管服务端应用程序模块的工具,而是转变为了分发JavaScript代码的规范化的工具。也许npm上的包的数量是最能表现Node的发展趋势。在去年的预测中,我们制作了下面的图表,比较了各种语言中包管理的数据,显示出了npm的优势。

图片 2

截至2015年12月,modulecounts.com的模块数量

在过去一年里,npm的增长并没有放缓的迹象。事实上,npm包的数量从20万增长到了大约35万,促使整个Y轴比例尺都被迫调整。

图片 3

截至2016年12月,modulecounts.com统计的包数量

增长背后的因素有很多,其中一个就是很多公司在基础服务中使用了Node。这同我们去年预测的结果相吻合。

“在2016年,我们可以预见到更多的公司将会进一步采用Node和他的包管理工具npm。因为Node的长期支持计划,微软、IBM、Intel、Progress等大公司将会继续使用Node,用来替代一些.NET、Java之类的传统企业解决方案。”

从Node的增长趋势来看,上面的预测结果并不意外。关于Node的案例研究表明,一部分中等规模的公司已经开始使用Node,包括Netflix,GoDaddy和Capital
One等。

Node在关键基础设施中得到了应用,其中最惹人注目的非NASA莫属了。你也可以看看NASA对Node的研究,在这里我只摘录一段话。

“在考虑宇航员的生命安全时,轻微的打嗝或者服务中断都会酿成生死事故。从EVA(舱外活动)的数据到太空中宇航员的各个领域里,Node.js都有助于确保所有人与事的安全。”

但是Node的发展并非只有NASA帮忙。Node的包管理工具npm已经成为了存储跨环境JavaScript代码的不二选择,包管理工具的统一化反之也推动了Node的发展。

在本文中,我们讨论的每个框架、每项技术都使用npm来存储和分发其源代码。在npm中搜索“jquery”,“polymer”,“react”,“cordova”或“nativescript”,你大概就能了解npm现在的规模。随着JavaScript的普及,npm也越来越受欢迎。npm越普及,Node.js发展越快。我们相信,这个趋势将会在一段时间内继续保持下去。

图片 4

在npmjs.com搜索“angular”得到近1万个结果。Angular是通过npm分发的众多类库之一。

在2017年,我们相信更多的公司将从传统的开发方式(比如JAVA和C#)切换到Node。我们相信TypeScript也将有助于推动Node的成长,因为它对Java和C#的开发人员更加友好。Node对LTS版本的支持承诺也将有助于这一趋势,因为它保证了这些公司使用的版本会在未来几年得到持续的支持和维护。

总的来说,大公司不喜欢维护多套开发系统和语言,而借助Node,这些公司可以用单一语言来整合所有的开发系统,还不仅仅是是服务器端的代码。下来我们看看JavaScript是如何影响移动端的。

Electron 的跨平台功能使在 Windows、Mac 和 Linux
计算机上构建和运行应用成为可能,它适合任何想要快速高效地交付视觉一致的跨平台应用程序的人。如今该框架已经有许多开发人员和组织在共同维护。

PhoneGap和Cordova

PhoneGap以及它的基石Cordova,是JavaScript进入原生开发领域的初次尝试。Cordova将web代码封装在WebView中,借由WebView来驱动原生的移动应用。这种方法允许Web开发人员使用他们已经掌握的技能(即JavaScript)来开发移动应用程序,正因为如此,在很多年里,Cordova都是开发移动应用的重要选择。

但是这种情况开始慢慢改变了。今天,Cordova面临了很多替代方案的挑战,它们大部分使用与Cordova类似的基于JavaScript的方案。也许Cordova最大的挑战来自谷歌主导的Progressive
Web Apps(简称PWAs)。

图片 5

Google的Progressive Web Apps主页

PWAs为web世界了带来了很多近似原生的功能,比如推送通知、离线访问和主屏幕图标等。去年,我们预测Google将开始慢慢推行PWA方法。事实证明,这一预测还是过于保守,因为Google已经明确表示,他们将开展多种活动来推广PWAs。在最近的Chrome开发者峰会,以及今年的Google
I/O会议上,谷歌都为PWAs安排了大量讨论。

PWAs和我们的讨论息息相关,因为它已经开始蚕食
Cordova的领域——需要使用原生功能的Web应用程序。如果你的web应用需要离线访问或者推送通知的功能,选择基于PWA
而不是
Cordova会是个更好的方案。尽管很难测量有多少人在混合应用中选择了PWAs,但已经有很多证据表明Cordova的使用量正在缩减。下面是最近两年Cordova每周被人们下载的次数。你可以看到,尽管Cordova下载数没有大幅波动,但增幅已经没有那么明显了。

图片 6

从2014年12月至2016年12月,“cordova”npm软件包的每周下载量。(数据来自npm-stat.com)

衰退还有一个原因。尽管我们认为PWA正在蚕食Cordova的份额,但我们也相信,移动领域中更新的开发方式也在蚕食了Cordova的份额。

发表评论

电子邮件地址不会被公开。 必填项已用*标注