翻译 | 摆脱浏览器限制的Javascript

2022-11-24 0 349

原副标题:译者 | 彻底摆脱插件管制的Javascript

译者:安冬 (清华Web前端开发技师)

责任编辑原创译者,转发请标明译者及书名。

书名门牌号:

控制技术世界在产业发展,Java也在并行产业发展。Java在软件世界盖起寨外的头一两年,它从来没Dharmapuri跨足服务项目插件、终端端插件和机器等等业务。今天,随着Java的产业发展,尖萼词汇早已进入了闲聊机器、VR和物联网等新领域。

除了不断拓展新领域,在服务项目端、终端端和图形界面端应用领域等自然生态中,Java的地位也越来越牢固。在责任编辑中,他们将首先简述今年所做的若干个预估,然后展望未来2017年Java会在插件之外拓展什么样新寨外。先来看看Java在服务项目端插件中的情况吧。

Node.js

Node.js是构筑服务项目端插件的开放源码运转TinyOS,此类Java标识符不是在插件中运转的。在往后的一两年里,Node早已从孵化器子公司中盛行的控制技术架构演进为各式各样规模子公司所采用的非主流开发设计。

Node的包管理软件npm也不再是代销服务项目端插件组件的辅助工具,而是转变为了递送Java标识符的制度化的辅助工具。也许npm上的包的数目是最能表现Node的产业行业发展趋势。在今年的预估中,他们制做了上面的图象,比较了各式各样语言中包管理的数据,显示出了npm的优势。

截止2015年12月,modulecounts.com的组件数目

在往后一年里,npm的快速增长并没有下滑的征兆。事实上,npm包的数目从20万快速增长到了大约35万,促使整个Y轴地形图都不得不调整。

截止2016年12月,modulecounts.com统计的包数目

快速增长背后的因素有许多,其中一个就是许多子公司在基础服务项目中采用了Node。这同他们今年预估的结果相符合。

“在2016年,他们可以断言更多的子公司Sonbhadra进一步采用Node和他的包管理软件npm。因为Node的长期支持计划,谷歌、IBM、Intel、Progress等大子公司Sonbhadra继续采用Node,用以代替一些.NET、Java等等的传统企业软件系统。”

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

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

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

但是Node的产业发展并非只有NASA帮忙。Node的包管理软件npm早已成为了存储跨环境Java标识符的不二选择,包管理软件的统一化反之也推动了Node的产业发展。

在责任编辑中,他们讨论的每个架构、每项控制技术都采用npm来存储和递送其源标识符。在npm中搜索“jquery”,“polymer”,“react”,“cordova”或“native”,你大概就能了解npm现在的规模。随着Java的普及,npm也越来越受欢迎。npm越普及,Node.js产业发展越快。他们相信,这个趋势Sonbhadra在一段时间内继续保持下去。

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

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

总的来说,大子公司不喜欢维护多套开发系统和词汇,而借助Node,这些子公司可以用单一词汇来整合所有的开发系统,还不仅仅是是服务项目端的标识符。下来他们看看Java是如何影响终端端的。

PhoneGap和Cordova

PhoneGap和它的基石Cordova,是Java进入原生开发领域的初次尝试。Cordova将web标识符封装在WebView中,借由WebView来驱动原生的终端应用领域。这种方法允许Web开发人员采用他们早已掌握的技能(即Java)来开发终端插件,正因为如此,在许多年里,Cordova都是开发终端应用领域的重要选择。

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

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下载数没有大幅波动,但增幅早已没有那么明显了。

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

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

Native mobile apps

Java驱动的原生终端应用领域,这种概念由Appcelerator倡导,借助Facebook的React Native和Progress的Native,目前早已盛行开来。用Java开发的原生插件不采用WebView,因此,不需要考虑基于Cordova的插件遇到的Web性能问题 。

在今年的讨论中,他们预估2016年Sonbhadra是这些架构成熟并广泛采用的一年,现在看来这些预估是准确的。在往后的两年里,React Native的每周下载次数在持续增加。

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

Native也有同样的趋势。

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

变化不只体现在这些Java驱动的原生架构的下载数据提升上,最近的一项调查研究(State of Java 2016)表明,Java开发人员对React Native和Native都很感兴趣。

State of Java 2016对终端开发领域兴趣调查的结果

对Java调查分析总结出了这些结果。

在兴趣分数上,“Cordova”和“PhoneGap”的得分很低,这也许是它们的性能问题导致的。虽然Cordova和PhoneGap所依赖的手机插件和Java引擎有了很大提升,但还是不如运转原生标识符(如React Native)。

在2017年,随着越来越多的Java开发人员开始尝试构筑原生应用领域,他们期待这些采用Java构筑原生应用领域的架构能够加速产业发展。React架构的快速产业发展也将使React Native获益,而Native则宣布在5月份完成Angular 2的支持,许多项目也会从Angular 1升级到Angular 2,Native也Sonbhadra从中获益。他们也希望Java驱动原生架构能够吸引原生iOS和Android开发人员,因为它允许你只用一份标识符就能在两个平台上构筑真正的原生插件。

Java越来越多地侵占了曾经以Objective-C和Java等词汇为主的终端端领域。但这不是Java正在侵入的唯一新领域。上面他们将讨论转到图形界面插件 。

图形界面应用领域

根据传统,如果要构筑Windows或Mac应用程序,就要采用针对专门平台的辅助工具,如WPF和Windows Forms,或者采用跨平台的方案,比如Java或Adobe Air 。不过,像上文中讨论的其他软件自然生态一样,基于Java的软件系统也在蚕食这个领域。

在今年的讨论中,他们讨论了用以构筑图形界面插件的两个最盛行的Java架构——NW.js和GitHub的Electron,同时判断其采用量在2016年将大幅快速增长。从现实来看,快速增长早已出现了,Electron现在也早已成为开发基于Java的图形界面插件的重要选择。

如果比较“electron”和“nw”在npm上下载量,你Sonbhadra看到“electron”(红线)和React Native的趋势类似,而NW.js的下载曲线相对平坦。

从2016年9月至十一月2016年,“electron”和“NW”npm包的周下载量。(数据来自npm-stat.com)

2015年12月,在GitHub上,Electron有2万个 star,NW.js有2万5千个;今天,Elecron拥有近4万个star,NW.js则刚刚超过3万。

Electron也被非主流图形界面应用领域所接纳。该架构现在为Visual Studio Code提供支持。Visual Studio Code由谷歌提供,是广受欢迎的编辑器,到4月份早已获得了超过五百万用户。Electron还在React和Angular社区做了推广,所以在这两个架构中使用Electron的教程可以很容易地在网上被找到。

他们预计,Electron在2017年Sonbhadra继续占据统治地位。他们期待Electron能够跟最盛行的架构(主要是React和Angular)进一步集成,从而获得软件供应商更多的关注。而且随着Java继续侵入传统上由Java和基于Microsoft控制技术主导的领域,他们希望Electron将继续被用作WPF,Java和Adobe Air等开发的代替品。

使用单一词汇完成你的所有开发需求,这个方案不但有足够吸引力,还采取了Java的一些最新的开发方式。最后,让他们看看Java在一些新的软件领域的表现。

Java的新边界

如果你向分析师询问产业发展中国家的产业发展情况,他们脱口而出的是VR,闲聊机器和物联网(IoT)等一系列盛行概念。

在所有这些新控制技术中,Java在闲聊机器这个领域是最重要的,人们采用Java来开发从简单的Slack机器乃至进行商业交易的复杂机器。在闲聊机器领域中,大多数的架构在他们的SDK中都集成了Node库,包括Botkit,Microsoft的Bot Framework和Facebook的wit.ai。谷歌的Bot架构的文档甚至介绍了为什么要用Node来开发机器。

“基于Node的Bot Builder是很有力的构筑机器的架构,可以处理各式各样形式的交互,给出更多的引导,它可以将这些可能性很清楚地展示给用户,它采用一些架构(如Express和Restify),可以让开发人员用熟悉的方式来开发机器。”

重用Java同样为许多盛行的IoT库(如Losant和zetta)和Leap Motion等设备提供了Node API。 Chrome插件团队和A-Frame架构团队就是其中的典型,还有不少团队在VR中采用Java。

Google Chrome小组拥有一系列令人印象深刻的VR实验,它们都是基于Java构筑的,你也可以自己尝试。

然而在C ++,Python和C#主导 的领域,Java并不具有很大的优势。比如,Oculus Rift设备主要采用C ++,Microsoft的HoloLens则需要你用C#编写。

我们预计这一趋势将在2017年开始发生改变。随着Java的普及和运转速度的提高,Java将继续延伸到像VR和物联网这样的领域。随着新的软件开发自然生态系统的涌现,他们期待Java能够快速上升为一等公民。

万金油 Java

10年前,在服务项目器上采用Java是不可想象的; 今天,Node拥有350万用户,年快速增长率达100%。5年前,采用Java来驱动原生iOS或Android插件还只是星星之火, 今天Native和React Native正以惊人的速度快速增长。3年前,采用Java构筑图形界面插件很少见, 今天Electron每月下载超过1万次。

Java不会用于所有场景下编程,因为许多其它词汇更适合于解决某些具体场景下的问题。但是不管采用什么开发平台,Java的广泛采用一定会是个重要因素。关于这个话题,Jeff Atwood有一句广为流传的话,也许用它来结尾再合适不过了,因为他的发言总是充满了预见性。

“可以用Java编写的插件,最终都将用Java编写。”

书名门牌号:

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务