大家是否正困惑于如何选择最适合当前项目以及企业需求的JavaScript UI框架?通过下面即将出场的十强竞逐,相信大家会拥有更多可资参考的背景信息。
在过去几年当中,我们迎来了用户体验库与框架阵营的惊人扩张——其中大部分属于开源项目。很多用户会认真比较这些框架之间的用途、使用方式以及完善程度。不过需要强调的是,请大家将目光转向项目社区以及生态系统的规模、实力以及发展趋势,这些才是我们挑选方案时最需要考量的要素。
就在今年早些时候,我有机会对自2012年以来发展最为迅猛的开源项目进行分析。经过调查, JavaScript相关项目的上榜数量实在令我震惊。有鉴于此,我开始更为深入地探究特定JavaScript库/框架项目,了解它们如何帮助开发人员建立更为丰富且更具可扩展性的用户界面。我在分析中所涉及的开源社区元数据来自Ohloh.Net以及 GitHub上的企业数据,其中包括***评分(用于帮助用户直观了解所关注项目的水准)以及对特定项目感兴趣的用户数量。
哪个项目力拔头筹
此次分析深入了解了前十大开源UI库、框架以及全堆栈框架(包括服务器端运行时)项目的相关技术社区,而且此次入选的都是当下最为热门的UI项目,其中包括:AngularJS、Ember.js、 SproutCore,、Backbone.JS、Knockout.js、Spine、 CanJS、MeteorJS、Derby以及Yahoo Mojito。
每个月都会有新项目与公众见面 作为最初由SproutCore于2011年十二月打造的项目,Ember的发行版数量就如火箭般节节攀升。此外,谷歌的AngularJS同样发展神速。 |
我的目标是通过图表对这些项目的相关社区进行分析(特别是针对其规模以及技术实力),并收集其使用者规模以及特定项目的成功程度数据。此外,我还关注与各个项目紧密相关的生态系统,并根据生态系统的运转情况推定项目的人气与接纳水平。
每月贡献者数量
了解项目每月贡献者的数量与增长情况有助于掌握该项目的发展趋势以及整个业界对其接纳的程度。上页中的图表显示的是各项目每月贡献者数量,其中的统计数据说明了在特定月份曾经为该项目作出代码贡献的开发者规模。
项目自诞生以来的总体贡献者数量 AngularJS与Ember的整体社区规模最为庞大,这也反映出二者最近一个月中贡献者数量的增长情况。 |
相关项目数量 开源项目的生命力部分体现在以其为核心的相关项目的具体数量上。在这里,我们看到Backbone.js以及AngularJS拥有非常显著的人气优势。 |
如大家所见,SproutCore在发展早期拥有更为突出的每月贡献者数量表现。然而自从SproutCore于2011年十二月开始打造Ember之后,很多开发人员开始转而为这一新项目提供支持。时至今日,Ember与AngularJS一道在2013年迎来了最为出色的月度贡献者增长幅度,从社区发展角度看二者也由此跻身***行列。另外需要注意的是,今年春季以来Backbone与Meteor的活跃贡献者数量出现了显著下滑,而AngularJS与Ember在人气方面则大幅上升。
项目自诞生以来的总体贡献者数量纵观项目在生命周期中的总体贡献者数量能帮助我们从不同角度出发理解其发展态势。首先,这一结果通常反映出项目的管理风格。很多项目会以一小部分核心人群为管理重点,不过也有不少项目以更为开放的姿态吸纳更为广泛的贡献者与参与者。
项目总体贡献者数量还能帮助我们理解项目在特定时间段中的发展状态。规模较大且成熟度较高的项目往往拥有更为可观的贡献者群体、他们帮助项目管理者修复漏洞、发布说明文档并完成其它相关任务。贡献者群体的人群通常也与代码库规模紧密相关。这项指标在与其它社区衡量指标配合起来将***参考价值,例如代码行数、整体提交量以及每月提交量等。
生态系统项目
除了当前贡献者之外,项目社区的技术实力也是项目生态系统依存乃至扩展的重要基础。这意味着核心项目社区本身并不一定始终代表着项目的前进势头,将着眼点放在更为广阔的生态系统身上才能进一步概括特定项目的综合发展状况。
值得注意的是,Backbone拥有一套相当出色的生态系统,这显示了其在行业当中旺盛发展态势以及接纳情况。为了进一步考察 Backbone的生态系统,我对自己的调查结果进行了过滤、仅保留GitHub上与Backbone 相关且***评分在三星以上的项目。最终整理结果,相关优质项目总计1627个,相比之下AngularJS的三星以上相关项目为794 个——这意味着Backbone的生态系统规模仍然达到AngularJS的两倍。
整体堆栈解决方案数量 Meteor与Mojito的强大技术社区似乎更具吸引力——至少从贡献者数量方面衡量是如此。 |
#p#
全堆栈解决方案
由于全堆栈解决方案与其它项目处于不同层面,因此我决定单独审视其发展趋势。全堆栈解决方案当中包含客户端框架以及服务器端框架;假设随着贡献者数量的增加、相关代码的规模也将不断扩大。通过以上图表,我们发现三个项目目前都处于早期相对稳定的参与阶段。
全部十大JavaScript项目的整体贡献者数量 如果大家仍抱有疑问,那么这份图表将清晰验证JavaScript正在席卷世界的结论。我们看到,2011到2013年其平均开发人员数量增幅超过了100%。 |
JavaScript的崛起
目前愿意利用JavaScript开发结构化方案并为此投入时间与精力的开发人员数量正迅速上升。下面这份图表显示的是自2011年以来参与开发工作的贡献者数量。这反映出当下 UI框架在应用程序开发领域的重要地位,也证明了各类规模的企业都需要不同类型的支持方案以实现其特定用例需求。今年一月以来贡献情况出现了显著飞跃,这主要是受到 AngularJS以及Ember团队的有力推动。
代码行与提交数量
大家可能希望了解每一个项目的具体代码库规模——以及代码行数与贡献者数量间的关系。经过比较,我们发现社区规模与总体提交量几乎跟代码库大小没什么必然联系。举例来说,AngularJS项目中每位贡献者平均提供413行代码,而Ember项目中每位贡献者平均提供的代码行数仅为146行。
不过我们倒是能够把社区规模(即总体贡献者数量)与总体代码提交量联系起来,可以看到不同项目之间每位贡献者的平均代码提交量存在显著差异。这可能意味着某些项目对开发者而言更易于实现代码贡献,这也影响到了参与者们的坚持周期。
代码量与贡献者数量比照 平均每位贡献者所提交的代码行数越多,可能意味着项目的开发难度越低、也标志着项目的健康状况越理想。 |
预测发展前景
社区规模与增长幅度是反映项目发展态势的重要指标。尽管这些指标无法为我们带来详尽的信息,但至少能够说明确实有人在为项目投入大量时间与精力,也能帮助我们根据项目社区的可行性以及稳定性作出决策。它们还可以指导我们掌握项目的推进节奏,帮我们及时了解项目吸引力以及影响力变化。
我熟悉并且喜爱丰富的UI框架阵营,这主要是因为我曾在Adobe公司用五年时间从事Flex框架的产品营销工作——如今该方案已经成为 Apache项目。基于以上分析数据,我认为Ember 与AngularJS是最值得关注的新兴框架方案。此外,Backbone相关生态系统证明该UI方案在人气与提交量两方面都得到了广泛认可,因此相信会拥有可持续且颇为光明的发展前景。