(点选
英语:Laurie Voss 原文:蓝莓城命令行
www.cnblogs.com/powertoolsteam/p/the-state-of-javascript-frameworks-2017-part-3-back-end-frameworks.html
责任编辑是2017年 JavaScript 架构简述系列产品的最终的一则该文,主要就如是说 JavaScript 的后端架构情况。
首篇:《2017 后端架构的现况》
第二卷:《2017 年 JS 架构简述:React 生态系》
从上图中能看见,Express 做为用 JavaScript 撰写的后端服务项目的非主流软件系统,占有了后端架构使用量的大部分,其二的五个最小架构对照于 Express 而言,保真度都极小。
到目前为止,我们所讨论的几乎所有架构的绝对使用量都在不断增加。自2013年以来,Express 的使用量已经增长了6000%。之所以 Express 的6000%增长在第一张图中显示成下降的状态,是因为在同一时间内,总的 npm registry 增长了67,000%。也就是说,JavaScript 社区正在以编程语言史上前所未有的速度增长。
npm 的后端使用正在爆炸式增长
目前,大约83%的 npm 开发人员正在撰写运行在后端的 JavaScript,而只有41%的人正在为后端撰写代码(前后端开发者有重叠的部分)。前后端开发人员的比例为约为2:1,这也表明 npm 社区的未来在于后端的开发和工具制造。
接下来我们查看其它的后端架构。
其他后端架构
下面是除 Express 之外的五个最小的后端架构,分别为:
Koa
Hapi
Sails
Next
koa
蓝色代表的是 koa 的相对使用量情形。Koa 是 Express 的开发人员使用一套更紧密的设计原则撰写的,旨在创建一个更小、更富表现力同时也更健壮的 Web 架构。虽然 Koa 具有不低的使用量,但其增长速度还不是很快。
Hapi
Hapi 是一个用于构建应用和服务项目的丰富架构,Hapi 使得开发者更专注于撰写可复用的应用逻辑,而不必把时间花费在基础设施的搭建上。2014年底,Hapi 有一个短暂的繁荣时期,然而自此之后,Hapi 的使用量就一直处于下滑状态。
Sails
Sails 是 JavaScript 的 Ruby on Rails 克隆。尽管最初在2012年年底推出时,Sails 非常受欢迎,但它却也遵循着“半衰期”的衰退模式,这也表明 Sails 不再被新项目采用。
Next.js
Next.js 是一个基于 React 的通用 JavaScript 架构,同时也是一个较新的架构。
Zeit 的开发团队在 React 的基础上创建了 Next.js。Next.js 提供了一种很方便的方式来创建新的 Web 应用。当前 Next.js 的使用量尽管还
Npm 中的前后端对照
前面已经提到,当前后端开发者的数量远超后端开发者的数量,但这种情形是否反映在 npm 的前后端安装包数量上呢?
尽管前后端的安装包也存在重叠的情形,但是整体数量还是后端安装包数量高于后端。
npm 中的后端使用情形
2013年以前,npm 中的后端架构使用量非常大,Backbone 的流行也是促成这种情形的原因之一。但是,随着 Express 和其它服务项目器端架构的持续增长,Backbone 变得不那么流行了。
npm registry 的后端使用量在经过两年的下滑之后,2015年开始再次开始增长。
跟踪 npm 后端的具体使用情形
为了弄清
Bable
Webpack
Browserify
Bower
RequireJS
SystemJS
Bable
Babel 是一个转译器,用于将现代的 JavaScript 版本转换为与 Node.js 中的服务项目器端 JavaScript 以及浏览器兼容的 JavaScript 旧版本。Babel 非常受欢迎,被用于后端和后端应用程序中。
Webpack
Webpack 是专门为浏览器提供 JavaScript 代码的工具。React 一直使用 Webpack 为浏览器服务项目做准备,很长一段时间,React 和 Webpack 都保持着相同的增长趋势。
但是从2016年年中开始,Webpack 的使用量开始超过 React。这也表明,Web 开发人员已经开始更广泛的采用 Webpack,而不仅仅是 React 应用程序。
Browserify
在 WebPack 成为流行的 JavaScript 代码工具之前,Browserify 一直是浏览器端转化服务项目器端 JavaScript 的重要工具。Browserify 也曾在2015年中期保持很高的受欢迎程度,但是从2016年开始,随着 Webpack 的逐渐流行,Browserify 的受欢迎度出现了急剧下滑的现象。
这也许和两个工具的设计目的有关。Browserify 为浏览器带来了 Node.js API surface(包括用于许多后端的API),Webpack 则是一个更通用的模块系统和编译工具,用于加载图片、CSS和其它后端资源。因此,对于非 Node.js 开发者而言,Webpack 更为有用。随着 npm Registry 后端使用的急剧增加,Webpack 已经成为一个非常有吸引力的选择。
Bower
浏览器端模块化 JavaScript 的另一个软件系统是 Bower,Bower 将模块引入了浏览器。尽管 Bower 客户端是由 npm Registry 托管和安装的,但是 Bower 却是一个完全独立的非 npm 模块。
虽然 Bower 的开发人员认为其客户端具有许多优秀的特性,但是他们还是赞同 CommonJS(大多数 npm 包所使用的 JavaScript 模块的格式)是一种更为灵活和流行的软件系统。Bower 的受欢迎程度自2014年起开始出现了持续的下滑。
RequireJS 和 SystemJS
Bower 的模块并不是 CommonJS 的唯一选择,RequireJS 是另一种具有模块格式的可选方案。RequireJS 在2013年初很受欢迎,但自2014年之后,开始与 Bower 一同出现下滑。2015年发布的 SystemJS 增长很缓慢。
Webpack 和 Express
目前,我们判断 npm 后端使用量的最可靠依据就是 Webpack。相比于 Express 的相对使用量,能看见,Webpack 在三年时间内,相对使用量迅速攀升到了 Express 的一半。
我们大胆预测 Webpack 将继续增长,甚至可能会超过 Express,这也与我们所见到的 Webpack 的新用户比例一致。几年后,npm 将是一个主要就的后端工具。
总结
npm 生态系中后端和后端的使用量增长,对于 JavaScript 的整体而言都是一个好消息。JavaScript 语言所具有的灵活性和易用性,是一种很大的优势。
也许 JavaScript 的广泛采用,正是由于 JavaScript 的内置特性很少,使得 JavaScript 语言在被使用时,有了很多的其它选择。
现在 JavaScript 使用量正在急剧增长,npm 也在与之同步增长。
觉得责任编辑对你有帮助?请分享给更多人