本文是2017年 JavaScript 框架回顾系列的最后的一篇文章,主要介绍 JavaScript 的后端框架情况。

从上图中可以看到,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 前端的具体使用情况

为了弄清楚 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 也在与之同步增长。

JavaScript 开发工具推荐

SpreadJS 纯前端表格控件是基于 HTML5 的 JavaScript 电子表格和网格功能控件,提供了完备的公式引擎、排序、过滤、输入控件、数据可视化、Excel 导入/导出等功能,适用于 .NET、Java 和移动端等各平台在线编辑类 Excel 功能的表格程序开发。

原文链接:https://www.npmjs.com/npm/the-state-of-javascript-frameworks-2017-part-3-back-end-frameworks

转载请注明出自:葡萄城控件

关于葡萄城

活字格由葡萄城公司研发、销售并提供技术服务。葡萄城公司成立于1980年,是全球领先的集开发工具、商业智能解决方案、管理系统设计工具于一身的软件和服务提供商。西安葡萄城是其在中国的分支机构,面向全球市场提供软件研发服务,并为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。

2017年 JavaScript 框架回顾 -- 后端框架的更多相关文章

  1. 2017年 JavaScript 框架回顾 -- 前端框架

    概述: 对于 JavaScript 社区来说,npm 的主要功能之一就是帮助开发者发掘所需的 npm Registry 中的库和框架.npm 强大的搜索功能能够帮助找到一组相关的软件包,同时其内置的的 ...

  2. 2017年 JavaScript 框架回顾 -- React生态系统

    前一篇文章中,我们介绍了2017年 JavaScript 框架的整体情况.我们也了解到在众多的前端框架中,目前最为庞大又在快速增长的当属 React 了,本文就来重点介绍 React 的生态系统. 首 ...

  3. JavaScript宝座:七大框架论剑

    JavaScript宝座:七大框架论剑 一周前,Throne of JS大会在多伦多召开,这应该是我参加过的最有料也最不一样的一次大会.大会官网如是说: 加载整个页面,然后再“渐进增强”以添加动态行为 ...

  4. javascript模块加载框架seajs详解

    SeaJS是一个遵循commonJS规范的javascript模块加载框架,可以实现javascript的模块化开发和模块化加载(模块可按需加载或全部加载).SeaJS可以和jQuery完美集成,使用 ...

  5. Javascript库,前端框架(UI框架),模板引擎

    JavaScript库:JQuery,undoscore,Zepto 纯Javascript语言封装, 前端框架(UI框架):Bootstrap,Foundation,Semantic UI,Pure ...

  6. vs2017 + miniUI 后端框架使用

    vs2017 +  miniUI  后端框架使用 上miniUI官网直接下载框架.http://www.miniui.com/ 此框架使用说明很清楚. 2.1.vs2017创建安装miniUI后端框架 ...

  7. 基于JavaScript的REST客户端框架

    现在REST是一个比较热门的概念,REST已经成为一个在Web上越来越常用的应用,基于REST的Web服务越来越多,包括Twitter在内的微博客都是用REST做为对外的API,先前我曾经介绍过“基于 ...

  8. 转: javascript模块加载框架seajs详解

    javascript模块加载框架seajs详解 SeaJS是一个遵循commonJS规范的javascript模块加载框架,可以实现javascript的模块化开发和模块化加载(模块可按需加载或全部加 ...

  9. Java后端框架之Spring Boot详解,文末有Java分布式实战项目视频可取

    在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大. 用过 Spring 框架的都知道 Spring 能流行是因为它的两 ...

随机推荐

  1. 分布式文件系统FastDFS详解

    上一篇文章<一次FastDFS并发问题的排查经历>介绍了一次生产排查并发问题的经历,可能有些人对FastDFS不是特别的了解,因此计划写几篇文章完整的介绍一下这个软件. 为什么要使用分布式 ...

  2. mysql存储过程 详细注释

    原文:https://my.oschina.net/u/3582142/blog/1581929

  3. g4e基础篇#3 Git安装与配置

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  4. css边框内圆角

    一.使用两个元素实现 html <div class="parent"> <div class="inset-radius">时代峰峻胜 ...

  5. css布局--水平居中

    一.水平居中 1. 使用text-align和display:inline-block实现水平居中 html <div class="parent"> <div ...

  6. 用深度学习(DNN)构建推荐系统 - Deep Neural Networks for YouTube Recommendations论文精读

    虽然国内必须FQ才能登录YouTube,但想必大家都知道这个网站.基本上算是世界范围内视频领域的最大的网站了,坐拥10亿量级的用户,网站内的视频推荐自然是一个非常重要的功能.本文就focus在YouT ...

  7. CSS 设置table下tbody滚动条

    table tbody { display:block; height:195px; overflow-y:scroll; } table thead, tbody tr { display:tabl ...

  8. SPI通讯协议

    一.SPI概述 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线, ...

  9. SpringMVC的映射器、适配器、解析器

    1.处理器和适配器 1.1springmvc的映射器 根据客户端请求的url,找到处理本次请求的handler(处理器),将url和controller关联起来 1.2springmvc的适配器 对映 ...

  10. 用clipboard.js实现纯JS复制文本到剪切板

    以前很多人都是用ZeroClipboard.js来实现网页复制内容,火端也是用它.ZeroClipboard是利用flash来实现的,ZeroClipboard兼容性很好,但是由于现在越来越多的浏览器 ...