资深的前端专家Dave Gruber最近对十个热门的Javascript框架的发展现状做了深入的分析,包括Angular、Backbone、Ember等,分析的方面包括贡献者数量、生态环境、社区规模等等。 Dave在统计报告一开始,先阐述了做调查分析的背景:在过去的几年中,我们已经看到了UX库和框架的大量增长,而且其中的大部分都是开源的。有很 多文章比较了这些框架的用途、方法以及完整性等方面的不同,但却常常忽视了围绕着这些开源项目的社区和生态系统的规模、强度和走势等度量标准。而这些统计 信息应该在您的选择中起到关键性的作用。
这次分析涵盖了UI库、框架和包括服务器端运行时的全套框架,挖掘到了前十名开源项目的社区。Dave分析的项目都是时下最热门的UI项目,包括 AngularJS, Ember.js, SproutCore, Backbone.JS, Knockout.js, Spine, CanJS, Meteor-JS, Derby, 和Yahoo Mojito。
探索一个项目每月贡献的数量和增长量能够观察出项目的走势并且可以凸显项目捕捉业界广泛兴趣的重要临界点。Dave统计了项目的每月贡献的参与,也 表明了在某个给定月份中贡献代码的开发者数量。从结果上看,SproutCore是每月贡献参与量的早期领先者。然而当2011年12月 SproutCore fork并创建了Ember项目后,许多团队中的开发者跟着一起变动,并跳槽到了Ember项目中。现在,Ember和Angular JS一起,已经在2013年的月代码贡献量上表现出了显著的增长,并从社区整体的增长角度来看成为了新兴的领先者。同时我们注意到,今年春天,在 AngularJS和Ember加速增长的同时,Backbone和Meteor的活跃贡献量在显著下降。 除此之外,Dave认为,观察项目整个发展历程中的全时(all time)贡献者数量可以帮助我们理解一些不同的观点。一方面,它往往反映出一个项目的管理风格。很多项目由一小组人进行严格的管理,而其它一些项目则完 全开放从而接受广泛和多元化的贡献。全时贡献者的数量也可以帮助我们理解项目在任何一个时间段中的相对发展趋势。大规模、制度完善的项目常常拥有较多数量 的贡献者,来帮助修补漏洞、撰写说明文档以及其它相关任务。贡献者的总数往往和代码库的总体规模有关。当结合其它社区指标时,比如代码行数、总提交量和月 提交量时,这一数据最有价值。
除了当前的贡献者数量,项目社区的力量也体现在项目生态系统的建立与扩展之上。这就意味着我们不能完全单独依靠项目社区的核心指标来知道一个项目发 展走势的全部内容。更加广阔的观察生态系统才能进一步描述出某个项目整体的成功。开源项目的鲁棒性可以通过与之相关的周边项目数量来衡量。在这方 面,Backbone.js和AngularJS很明显是赢家。
由于全套(full stacj)解决方案的审查角度和其他项目有区别,Dave对这类项目的增长进行了单独的观察。全套解决方案中既包括客户端框架也包括服务器端框架,可以假设,解决方案涉及到的代码量越多,随着时间推移参与其中的技术人员数量也就更多。
Dave发现,将时间投入到用JavaScript创建结构化方法的开发人员数量正在快速增长,反映出了UI框架在应用程序开发中的重要地位,并且 不同规模的企业对于不同用例方案支持方法的需求也在持续增长。从今年一月份开始,代码贡献量出现了显著的增长,这很可能是受到了AngularJS和 Ember团队的推动而导致的结果。
你可能想知道每个项目的代码库的大小以及代码库数量和贡献者数量之间的联系。通过比较这些数据,Dave发现社区规模和总提交量和代码基础的大小几 乎没有联系。举例说明,Angulat JS项目中每个贡献者平均贡献413行代码,而Ember表明每位贡献者平均贡献146行代码。每个贡献者提供的代码行数越多表明这个项目编写起来越简 单。从而有人将其视为一个项目健康程度的一项衡量指标。
Dave认为,社区规模和增长情况对于一个项目的发展趋势而言是非常重要的指标。尽管这些指标不能告诉我们项目的全部情况,但它们提供了重要的评价 标准,从而被大量投资并且帮助我们基于社区的可行性和可持续性做出决定。它们同时也能帮助我们找到项目生命周期中的临界点,为我们提供了参与项目并产生影 响的机会。 最后,Dave总结道:
|