Vue.js在JavaScript框架竞争中能否持久?

发表时间: 2018-01-13 11:25

新的 JavaScript UI 框架和库似乎一直都在不停地发布。每隔六个月,我们就会看到一个全新的框架声称自己已彻底改变了 UI 的发展,然后成千上万的开发者在自己的项目中使用它们,写博客分享使用心得,在 Stack Overflow 中提问和回答,日复一日,然后又出现一个更新的(甚至更革命性的)框架来取代上一个的“王位”。

通过 Stack Overflow 的调查以及内部流量数据,开发者可以看到一些框架现在的发展情况,包括 Angular, React, Vue.js, Backbone, Knockout 和 Ember等。

框架的生命周期

Stack Overflow 的趋势让我们了解到,这些技术随着时间的推移,被提问的情况是如何变化的。先看一些相对来说用户群体较大的框架。

有一段时间,jQuery 是 Stack Overflow 中 JavaScript 标签的热门关键字,关于它的提问几乎占了新问题的 8%。随着 AngularJS 和 后来 React 的发布,图片中的走势迅速发生了变化,它们蚕食了 jQuery 在社区中占有的份额。从 2016 年左右开始,开发者开始迁移至谷歌开发的新的流行框架,所以我们看到 AngularJS 的用户开始迅速转用它的后续版本 Angular 2+。

这些用户群体较大的框架只显示了部分情况,事实上,也有较小的框架在争夺主导地位。我们可以从下面的图片看到这些 JavaScript 框架生命周期的残酷程度。

JavaScript 框架的使用似乎有两个主要阶段。随着框架越来越受欢迎,它们似乎都有一个快速上升的阶段,然后又因为开发者采用更新的技术,它们的上升开始变得没那么快甚至总体是稳步下降的。这些框架的生命周期只有几年,从 2011 年开始,业界似乎主要采用几个存在竞争关系的框架:Backbone, Knockout 和 Ember。有关这些标签的问题在 2013 年左右出现增长,并且在 AngularJS 开始增长的同时,又开始稳步下滑。最近的后起之秀是 Vue.js 框架,它被迅速采用,我们可以看到它是 Stack Overflow 上增长最快的标签之一。 不过,最终只有时间可以说明这种增长将会持续多久。

通过编程语言和技术进行分析

开发者使用某个特定的前端框架或其他框架都会有各种各样的理由,主要使用某种编程语言或技术的开发者可能更倾向于选择某个 UI 框架。例如,我们可能会认为 Node.JS 开发者会选择使用与 Ruby on Rails 开发者不同的框架。

根据开发者最常访问的标签将他们划分成不同的组,通过进行分组,检查每个组流向这些框架的流量百分比。

明显可以看到,使用 TypeScript 和 CSS 的开发者对 JavaScript 框架流量的贡献都比较高。这是很正常的,因为使用这些技术的一般是前端开发者,所以他们更有可能使用 JavaScript 框架。尤其是 Angular,它和 TypeScript 的依赖关系特别强,因为 Angular(不是 AngularJS)是用 TypeScript 编写的。

这次分析也包含了对 C++ 和 C 开发者的分析,由于主要使用 C 和 C++ 的开发者更倾向于进行更多的系统编程,所以他们不太可能使用 JavaScript UI 框架,因此它们在每个框架中都只是拥有相对较低的百分比。

不过无论使用什么技术,Angular 和 React 都是最受欢迎的。这也是有道理的,它们是先行者,而且背后有两个最大和最有影响力的科技公司的支持。我们还能发现,Angular 在 C#, Java 和 PHP(某种程度上)开发者中的受众更多,而 React 更受 Rails,Node.js 和 Python 开发者的欢迎。

对于 Knockout.js,它主要通过 C# 开发者获得更多流量,因为 Knockout 也是微软的技术。PHP 是一个有趣的案例,它是为 Web 开发而设计的,但是 PHP 开发者并没有访问很多关于 Angular 或 React 的问题(整体上来看),反而对于 Vue.js 问题的访问显得有些不成比例。

主要通过行业和地理位置(美国地区)这两个角度对最受欢迎的两大热门框架 React 和 Angular 进行了分析,不妨看看数据。

最后,作者对此发表了自己的看法,他不会主张使用任何一种框架。就像对于每一项技术的选择一样,它的考虑因素不应是“火热程度”,而是权衡取舍和是否适合解决手头的问题。不过另一方面,开发者社区的规模确实很重要。它有助于开源环境的繁荣,并且更容易在 Stack Overflow 以及网络上找到帮助。