【第1171期】npm 2017 JavaScript 框架报告之后端框架

前言

上周末分享了【第1167期】npm 2017 JavaScript 框架报告之 React 生态系统分析,今日早读文章由@编译青春翻译授权分享。

正文从这开始~

主要后端框架

640?wx_fmt=png&wxfrom=5&wx_lazy=1

什么鬼,就一个?不对,横坐标上趴着的都是啥?好吧,Express 是用 JavaScript 编写的后端服务的主流解决方案,剩下的四个最大的框架相对于 Express 来说太小了,甚至很难看到它们。

从图中可以看出的另一点是,Express 的下载量由原来的 1.5% 慢慢下降到 0.15%,是原来的十分之一。然而,与不断下滑的 Backbone 和 Flux 不同,Express 已经趋于稳定。

那是不是说 Express 变得越来越不流行了呢?请看下图:

0?wx_fmt=jpeg

这张图中的纵坐标是绝对下载量,可以看到几乎所有的框架都是越来越流行的。Express 从 2013 年初以来已经增长了 6000%。之所以 6000% 的增长在前一张图中看起来是下降的,是因为在 Express 增长的同时,NPM package 总量也增长了67,000%。

NPM 中前端代码爆炸式增长

0?wx_fmt=jpeg

目前,大约 83% 的 NPM 开发人员正在编写运行在前端的 JavaScript,而只有 41% 的人正在为后端编写代码。前后端开发比例为 2:1,强烈表明 NPM 社区的未来在于前端开发和工具制造。

在深入研究这个结论之前,让我们来看看更多的服务器端框架。

其他后端框架

0?wx_fmt=png

Koa

用蓝线表示,Koa 是用一套更紧密的设计原则重写的 Express 的“精神继承者”,使用绝对量可观,但增长速度还不是很快。

Hapi

0?wx_fmt=png

用黄线表示,Hapi 在 2014 年末有一个短暂的鼎盛时期,这恰巧是 NPM 转用 Hapi 的时候。然而,自此 Hapi 一直处于下滑状态,NPM 自己的网站也正在转用其他技术。

Sails

0?wx_fmt=png

用绿线表示,Sails 是 JavaScript的 Ruby on Rails 的克隆。虽然最初在 2012 年年底推出的时候非常流行,但它一直衰退,这表明它不再被新项目所采用。

Next.js

0?wx_fmt=png

用红线表示,Next.js 相对较新,流行度明显不如前三者。其一直稳步增长,值得一试,尤其是因为它使用了React。

前端 vs 后端

0?wx_fmt=png

刚刚我们提到,调查显示数量上前端开发者超过后端开发者,这个结果能否从 package 的使用情况中体现呢?

这是一个难以回答的问题,许多 package 很难被归类为“前端”或“后端”,因为许多 package 在两种情况下都能工作并且应用广泛,所以单从代码上没法区分是前端还是后端代码,NPM 中有超过 60 万个 package,一个一个调查也是不可能的。

前端历史使用情况

0?wx_fmt=png

在2013 年及以前,NPM 的前端使用量非常庞大,反映了 Backbone 的流行程度。但是,随着 Express 和其他服务器端代码的持续增长,Backbone 迅速衰退。自 2015 年以来,前端使用率再次增长。但是前端和后端在 JavaScript 代码上界限是模糊的,部分原因是 Webpack 和 Babel 这样的工具,我们下面具体看看。

追踪前端使用情况

为了试图弄清楚 NPM 的前端使用情况,我们来看看一些库,其中包括:

  • Babel

  • Webpack

  • Browserify

  • Bower

  • RequireJS

  • SystemJS

0?wx_fmt=png

上面是 Webpack 和 Babel 的使用情况,React 用于比对。

Babel

用黄线表示,Babel 非常受欢迎,但它被同时用于前端和后端程序,所以它不是调查前端使用情况的可靠途径。

Webpack

0?wx_fmt=png

用橙线表示,Webpack 是工作在浏览器的工具。 React 与 Webpack 一直以来彼此紧随,不过在 2016 年年中,Webpack 的使用率开始超过 React。这表明,Web 开发人员已经开始更广泛地采用 Webpack,而不仅仅是在 React 应用程序上使用。

Browserify

0?wx_fmt=png

在 Webpack 流行之前,Browserify 开创了在浏览器中使用服务器端 JavaScript 的过程。 2015 年年中非常受欢迎,但 2016 年开始急剧下滑。Browserify 将Node.js API 用于浏览器,而 Webpack 是一个更通用的模块系统和编译工具,可以加载图片,CSS 和其他前端资源。因此,对于不用 Node 的开发者来说,Webpack 更为有用。因此,Browserify 衰落,Webpack 崛起,就是这个道理。

Bower

0?wx_fmt=png

Bower 是另一个浏览器端模块化解决方案。 其在 2014 年中期开始下滑。它的开发者现在认为它已经被弃用了。(有趣的是,编写早期版本的 Bower 的 AndréCruz 继续创建了 npms.io,这个开源的 JavaScript 模块搜索引擎被 NPM 所采用,André 自己也是 NPM 用户)

RequireJS 和 SystemJS

0?wx_fmt=png

RequireJS 是另一种模块化方案,在 2013 年初颇受欢迎,但与 Bower 同期下滑。 2015 年发布的 SystemJS 增长缓慢,直到 2016 年中期,一直表现平平。 2016 年中期,当 Webpack 助推 React 的时候,SystemJS 的用户很可能这时开始转移阵地。

曾经 Bower 一统天下,后来在 Browserify 面前败下阵来,而 Browserify 和 SystemJS 的份额后来也被 Webpack 侵吞。 JavaScript 生态系统在过去 5 年中的快速改朝换代表明,很难预测 5 年后 JavaScript 将会成为什么样子。

Webpack and Express

0?wx_fmt=png

目前来看,我们可以通过 Webpack 大概了解 NPM 的前端使用情况。Webpack 从三年前开始快速增长,直到现在受欢迎程度是 Express 的一半。尽管在瞬息万变的 JavaScript 世界中做出预测是一件很不靠谱的事情,但我们认为 Webpack 将继续增长,甚至超过 Express,这与我们所看到的新用户的比例一致。几年后,NPM 可能被认为是一个前端工具。

都是 JavaScript 的好消息

0?wx_fmt=png

NPM 生态的所有成长,无论是前端还是后端,对于 JavaScript 整体来说都是一个好消息。 它的灵活性和易用性难能可贵,其最核心的那部分常常被视为软肋,实际上可能是铠甲。

NPM 庞大的用户力量可以创建数十个重叠的社区,涉及前端、后端、桌面应用、移动应用、命令行、物联网设备等等,他们使用不同的 JavaScript 库组合,使得 JavaScript 更加蓬勃。

最后,为你推荐

【第1167期】npm 2017 JavaScript 框架报告之 React 生态系统分析

【第1170期】如何看待员工跳槽

关于本文
译者:@编译青春
译文:https://mp.weixin.qq.com/s/am_SX3Yjt-Df3TFqnJIDXw
作者:@Laurie Voss
原文:https://www.npmjs.com/npm/the-state-of-javascript-frameworks-2017-part-3-back-end-frameworks

0?wx_fmt=jpeg

【视频教程】webpack3.x视频教程 全网首发

猜你喜欢

转载自blog.csdn.net/wGL3k77y9fR1k61T1aS/article/details/79091691