排列三字谜

JavaScript框架的開發現狀和生態環境

2013-10-31 08:09:50來源:infoq作者:崔康

這次分析涵蓋了UI庫、框架和包括服務器端運行時的全套框架,挖掘到了前十名開源項目的社區。Dave分析的項目都是時下最熱門的UI項目,包括AngularJS, Ember.js, SproutCore, Backbone.JS, Knockout.js, Spine, CanJS, Meteor-JS, Derby, 和Yahoo Mojito。

資深的前端專家Dave Gruber最近對十個熱門的Javascript框架的發展現狀做了深入的分析,包括Angular、Backbone、Ember等,分析的方面包括貢獻者數量、生態環境、社區規模等等。

Dave在統計報告一開始,先闡述了做調查分析的背景:在過去的幾年中,我們已經看到了UX庫和框架的大量增長,而且其中的大部分都是開源的。有很多文章比較了這些框架的用途、方法以及完整性等方面的不同,但卻常常忽視了圍繞著這些開源項目的社區和生態系統的規模、強度和走勢等度量標準。而這些統計信息應該在您的選擇中起到關鍵性的作用。

今年的早些時候,我有機會對自2012年開始增長最快的開源項目做一個分析,并且我被名單列表中的JacaScript項目的數量震驚了。這使得我對特定的、專注于幫助開發者建立豐富、可擴展的用戶界面的JavaScript 庫/框架的項目做了更加深入的了解。我的分析用到了開源社區Ohloh.net中的元數據和GitHub中的集成數據,包括評星的數目(用來幫助用戶追蹤他們覺得有趣的資料庫)以及個別項目吸引到的追隨者的數量。

這次分析涵蓋了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)貢獻者數量可以幫助我們理解一些不同的觀點。一方面,它往往反映出一個項目的管理風格。很多項目由一小組人進行嚴格的管理,而其它一些項目則完全開放從而接受廣泛和多元化的貢獻。全時貢獻者的數量也可以幫助我們理解項目在任何一個時間段中的相對發展趨勢。大規模、制度完善的項目常常擁有較多數量的貢獻者,來幫助修補漏洞、撰寫說明文檔以及其它相關任務。貢獻者的總數往往和代碼庫的總體規模有關。當結合其它社區指標時,比如代碼行數、總提交量和月提交量時,這一數據最有價值。

從結果上看,Angular JS和Ember展現出最大的社區,從而反映出它們近一段時間以來的每月貢獻增長量。

除了當前的貢獻者數量,項目社區的力量也體現在項目生態系統的建立與擴展之上。這就意味著我們不能完全單獨依靠項目社區的核心指標來知道一個項目發展走勢的全部內容。更加廣闊的觀察生態系統才能進一步描述出某個項目整體的成功。開源項目的魯棒性可以通過與之相關的周邊項目數量來衡量。在這方面,Backbone.js和AngularJS很明顯是贏家。

值得注意的是,Backbone擁有可觀的生態系統,顯示了它在業界整體的發展趨勢和使用量。為了進一步的驗證Backbone的生態系統,我在Github上對搜索進行過濾,只保留了評星大于等于三星以及和Backbone相關的內容,并且得到了1627個項目的搜索結果。將此結果與AngularJS的三星之上的794個項目相比,可以知道Backbone的生態系統規模仍然是AngulatJS的兩倍。

由于全套(full stacj)解決方案的審查角度和其他項目有區別,Dave對這類項目的增長進行了單獨的觀察。全套解決方案中既包括客戶端框架也包括服務器端框架,可以假設,解決方案涉及到的代碼量越多,隨著時間推移參與其中的技術人員數量也就更多。

Meteor和Mojito似乎吸引了更強的社區,至少從貢獻者的數量上衡量起來是這樣的。

Dave發現,將時間投入到用JavaScript創建結構化方法的開發人員數量正在快速增長,反映出了UI框架在應用程序開發中的重要地位,并且不同規模的企業對于不同用例方案支持方法的需求也在持續增長。從今年一月份開始,代碼貢獻量出現了顯著的增長,這很可能是受到了AngularJS和Ember團隊的推動而導致的結果。

JavaScript正吞食占據這個世界。從2011年到2013年,開發者的平均數量翻了不止一倍。

你可能想知道每個項目的代碼庫的大小以及代碼庫數量和貢獻者數量之間的聯系。通過比較這些數據,Dave發現社區規模和總提交量和代碼基礎的大小幾乎沒有聯系。舉例說明,Angulat JS項目中每個貢獻者平均貢獻413行代碼,而Ember表明每位貢獻者平均貢獻146行代碼。每個貢獻者提供的代碼行數越多表明這個項目編寫起來越簡單。從而有人將其視為一個項目健康程度的一項衡量指標。

不過你可以找到社區規模(即總體貢獻者數量)與總體提交量中的聯系,并看到不同項目的平均貢獻者提交量的變化非常不同。這可能表示一些項目更容易編寫(做出貢獻),從而影響到項目的長期發展。

Dave認為,社區規模和增長情況對于一個項目的發展趨勢而言是非常重要的指標。盡管這些指標不能告訴我們項目的全部情況,但它們提供了重要的評價標準,從而被大量投資并且幫助我們基于社區的可行性和可持續性做出決定。它們同時也能幫助我們找到項目生命周期中的臨界點,為我們提供了參與項目并產生影響的機會。

最后,Dave總結道:

豐富的UI框架是離我最熟悉也最喜愛的主題,因為我曾在Adobe公司工作五年來推動Flex框架的產品營銷。現在這個項目已經轉為了一個Apache項目。基于所有的數據分析,我的感受是Ember和AngularJS是新近涌現出的值得關注的JS框架。數據也表明,Backbone周圍的生態系統表明了這個UI方案非常受歡迎并且十分可信,因此它一定會有一個持續并且光明的未來。

關鍵詞:JavaScript框架

贊助商鏈接:

排列三字谜 股票配资是什么 日本av女优黄色网站 一本道丝袜qvod 彩票大赢家比分 足彩比分直 河内三分彩平台 毛片a片视频最新 辽宁阜新麻将玩法 青海快3 114期足彩比分 澳洲幸运5计划 股票配资app平台是合法的么 微乐辽宁麻将ios怎么下载 快乐时时彩 北单比分开奖 贵州11选5开奖结