概述:

对于 JavaScript 社区来说,npm 的主要功能之一就是帮助开发者发掘所需的 npm Registry 中的库和框架。npm 强大的搜索功能能够帮助找到一组相关的软件包,同时其内置的的文档和使用统计信息,可以帮助开发者决定使用哪一种软件包。

选择过程中,一个重要的评估因素就是社区对软件包项目的持续支持:是否正在积极的维护?是否有足够大的社区来维持项目?

评估的过程中,软件包的普及程度是一个重要的考量因素。不论是通过博客文章还是教程的方式,一个具有大型社区的软件包意味着有更多的开发者可以帮助你解决问题。一个大型的社区也意味着在遇到错误之前,找到修复错误的可能性更大。如果你们是一个大型的团队,那么使用流行的软件包,也能让你更容易的招聘到熟悉这些软件的开发人员。

使用 npm 的下载统计数据,可以让开发者了解到使用和维护软件包的人数。一旦将软件包加入软件中,那么软件包将拥有非常长的寿命,因为开发者一旦安装了软件包,就很少会将其从软件包中删除掉,正是由于这种非常低的“流失”,安装包的使用几乎不会降低。而且随着 npm 用户数的不断上升,npm Registry 中的软件包数量也在不断增加。

在考虑软件包的流行程度时,开发者应该关注的是软件包的相对流行程度,即软件包的下载数量占 Registry 中所有软件包的下载数量百分比,而不必关注软件包的绝对增长率,因为软件包的绝对下载量都是不断增加的。

Registry 的整体数据

npm Registry 中所有软件包下载的总和表明,npm 生态系统正在经历爆炸式的持续增长。JavaScript 越来越受欢迎,npm 也正在被更多的 JavaScript 社区所采用。

目前,大约75%的 JavaScript 开发者都在使用 npm,而且这个数字还在上升,同时现在大约有1000万 npm 用户。

下面我们以软件包所占 npm Registry 中所有软件的百分比来作为度量的标准。

前端框架

下面我们分析前端框架中最为流行的几种:

  1. Backbone
  2. React/Preact
  3. Angular
  4. Ember
  5. Vue

Backbone

Backbone 是最早的 JavaScript Web 应用程序框架之一。在早5年中,Backbone 占据了 npm Registry 下载量的近1%。但是从2013年起,Backbone 开始急剧下降,而且一直持续下降的趋势。即便如此,Backbone 每月仍有75万次下载,这也是一个相当大的使用量。

React

从上图可以看出,React 自2014年以来,经历了大幅增长。2017年,React 已经成为了最受欢迎的前端框架。React 并不是构建 Web 应用程序的完整端到端的解决方案。React 是针对应用程序的特定需求,而精心设计的解决方案。并且 React 可以轻松地为应用程序的其它部分提供多种替代解决方案。由于这种模块化的特性,React 已经形成了一整套相关软件包的生态系统,可以解决应用程序其它部分的问题。

Web 开发人员正在积极采用 React,而其他领域(如移动和桌面应用程序开发)的开发人员也在使用 React。

Preact

Preact 是 React 的小兄弟,是一个独立开发的 React 替代品。相比于 React,Preact 牺牲了旧版浏览器与性能和尺寸改进的兼容性。虽然 Preact 的总体使用率比较低,但是 Preact 还是赢得了很多开发者的关注,同时其未来的潜力不容小觑。

Angular

Angular 是一个完整的框架,是一个用于构建Web应用程序的完整解决方案。Angular 是 React 之后的第二大流行框架,是 Ember 或 Vue 受欢迎程度的两倍。

Angular 主要由 Google 构建和维护。虽然,2017年 Angular 的相对流行程度并没有明显增长,但是它拥有一个庞大的社区、Google 的巨大资源和对其的持续支持,所以 Angular 仍是值得开发者持续使用的。

Ember

Ember 是一个由各种大公司形成的完整框架,但它没有主要的企业支持者。从 npm 的数字看来,Ember 在2016年下滑后,又在2017年逐渐出现上升。

Vue

Vue 是由曾经在 Angular 工作过的 Google 前工程师创建的,与 Ember 的流行程度大致相同,Vue 在绝对流行度方面略低于 Angular 的一半。Vue 的增长速度远远超过 Ember 和 Angular,预计 Vue 会在2018年超过 Ember。

2017年前端框架情况

上图显示了2016年10月至2017年10月的12个月期间,各个框架的绝对受欢迎程度及其增长情况。从总体情况中,可以得到以下结论

  • Preact 虽然很小,但发展最快。
  • Vue 的成长速度也非常快。
  • Ember 在过去的12个月里受欢迎程度有所上升。
  • Backbone 已经不再那么受欢迎了。
  • 当用户从1.x转移到2.x时,Angular 的受欢迎程度保持不变。
  • jQuery 仍然非常受欢迎,但用户使用量越来越少。
  • React 既庞大又在快速增长。

本文是2017年 JavaScript 框架回顾的第一篇,后续还有 React 生态环境介绍和后端框架两篇文章,敬请期待。

原文链接:https://www.npmjs.com/npm/state-of-javascript-frameworks-2017-part-1

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

相关阅读:

前端开发者常用的9个JavaScript图表库

JavaScript中的内存泄漏以及如何处理

JavaScript 开发人员需要知道的简写技巧

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

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

    本文是2017年 JavaScript 框架回顾系列的最后的一篇文章,主要介绍 JavaScript 的后端框架情况. 从上图中可以看到,Express 作为用 JavaScript 编写的后端服务的 ...

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

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

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

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

  4. 超实用!9个目前流行的MATERIAL DESIGN前端框架

    http://www.uisdc.com/material-design-frameworks-top-9 谷歌推出的Material Design风格已见有一些APP UI采用,视觉和交互体验都很棒 ...

  5. 5大JavaScript前端框架简介

    译者按: 简要介绍五大前端框架特性 原文: Top 5 JavaScript Frameworks 译者: Fundebug 为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用 ...

  6. JavaScript前端框架的思考

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:现在JavaScript前端框架层出不穷,尤其Angular进入到2.x时候之后,我们 ...

  7. 2017年JavaScript框架---Top5

    前言 个人观点,供您参考 观点源自作者的使用经验和日常研究 排名基于框架的受欢迎度, 语法结构, 易用性等特性 希望大家能够基于此视频找到最适合自己的框架 下面介绍的都是严格的前端框架和库 前言 To ...

  8. 前端框架——BootStrap学习

    BootStrap简单总结下:1.栅格系统,能够很好的同时适应手机端和PC端(及传说中的响应式布局) 2.兼容性好 接下来是对BootStrap学习的一些基础案例总结和回顾: 首先引入:bootstr ...

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

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

随机推荐

  1. Windows 10 安装 Docker for Windows

    Docker for Windows是Docker社区版(CE)应用程序. Docker for Windows安装包包括在Windows系统上运行Docker所需的一切. 本主题介绍了预安装注意事项 ...

  2. tomcat加入系统服务+开机自启

    1.首先将tomcat/bin 下的catalina.sh复制到目录/etc/init.d中,并修改名称为tomcat [root@iZ2318 ~]# sudo cp /usr/local/tomc ...

  3. 关于scrapy的piplines

    1.进入setting中把ITEM_piplines文件注销去掉 2.在piplines中写好代码 # -*- coding: utf- -*- # Define your item pipeline ...

  4. AJAX扩展-POST传递参数并跳转页面

    拓展的代码: 这段代码的原理是创建一个表单,所有args都创建一个隐藏的input,用post方法把这些参数传递过去 注意form表单一定要加载到页面中,即下面代码中标红的部分,不然参数是无法被传递的 ...

  5. 引号在jsp页面中正确显示的处理

    写在前面: 在前面的博客中已经有了对一些特殊字符的处理,但是万万没有想到,出来了一个含有引号的字符串,比如这样的ab"c"d的一个字符串.如果在超链接传值的时候,会与前面的引号成对 ...

  6. 【java】Date与String之间的转换及Calendar类:java.text.SimpleDateFormat、public Date parse(String source) throws ParseException和public final String format(Date date)

    package 日期日历类; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util. ...

  7. C#Linq技术中SelectMany(...)函数的内部实现的伪代码

    我们先来假设这种场景: 一个学校中有多个年级,一个年级有多个班级,一个班级里有多个学生.这里我们只需要班级.年级.和学生这三个概念: 让我们先来定义Class类和Student类: // 注意,Cla ...

  8. 【Hdu2089】不要62(数位DP)

    Description 题目大意:给定区间[n,m],求在n到m中没有"62"或"4"的数的个数. 如62315包含62,88914包含4,这两个数都是不合法的 ...

  9. [数据结构]C语言栈的实现

    有始有终,所以我准备把各种数据结构都讲一次,栈也分顺序存储和链式储存,这里我们选择链式存储来讲,顺序存储没有难度(链式其实也是) 作为数据结构中最简单的栈,这里不会说太多,首先考虑一下下面的model ...

  10. Xamarin截取/删除emoji表情bug解决方案

    大家都知道,一个英文=1字节,一个汉字2字节,而一个emoji表情=4个字节,在有这三种混用的时候,比如app聊天界面,那么删除和截取便成了很头痛的事情. 问题描述 截取导致乱码,如下图: 解决方案 ...