Github項目中使用率最高的Java/Ruby/JS庫(轉)

提到開源,相信不少人會想到Github,目前它的託管數量已經超過了一百萬。上面幾乎涵蓋了各種類型的項目庫,當然,參與貢獻的開發者數量也是極多。因此,它也提供了相當多樣的數據資源,一些研發人員利用這些數據來研究開/閉源、企業軟件等發展趨勢。

開發者每天都會面對一些軟件開發庫或開源庫,在使用一些舊庫的同時,每天都會出現許多新庫,開發者如何在它們之間做出選擇,找出適合自己的軟件開發 庫呢?社區的用戶數和貢獻者的活躍度對一個庫的成功起着非常關鍵的作用,這也是開發者選擇的關鍵。對於一個開源庫來說,開發者很容易知道它的貢獻者數量, 但一般很難知道有多少開發者使用它。本文作者採用具體的數據來解答這個問題。

作者選擇了排名前三的編程語言庫來進行分析,這三門語言分別是Java、Ruby、JavaScript。分別分析了它們當中最流行的10000個 項目(例如Github倉庫),並且從中選出最受這些項目喜愛的庫。此外,他們還分析了排名前100庫所使用的組件、組合種類(例如測試、數據庫、UI等 等),並且看看這些語言直接的不同之處。

下面分別列出了10000個Java、Ruby、JavaScript項目中使用率最高的10個庫,並把一些值得特別關注的庫和趨勢進行總結和分析。

 

Java

注:點擊鏈接可獲得關於Java庫的全部分析結果。

Java項目中排名前十的庫

Guava是 Google的開源庫,目前,Google代碼已成爲主流,雖然Spring和Apache庫非常普遍,在前100個項目當中,它們佔到了高於25%的平 均比例。但有些驚訝的是谷歌的一些庫,例如GWT和Guava,Guava成功的排在了第7位,在Java的10000個項目中,有4.8%的項目使用了 它。

另外值得大家關注的一個庫是 ElasticSearch,它是一款非常強大的搜索和數據分析引擎,目前在Java調查的項目裏,有110個項目使用了該庫。

數據處理佔據了Java很大一部分,其中主要集中在數據管理。而在大數據方面,Hadoop處於領先地位。在被調查的10000個項目中,有168 個項目採用Hadoop,最知名並且也是最常用的SQL數據庫之一MySql被225項目採用,另一個知名的關係數據庫PostgreSQL則是121 個。

測試驅動開發在Java和Ruby中佔據很大一部分,在這三門語言中,測試都扮演着非常重要的角色,在Java和Ruby中,40%-50%的項目都使用了自動測試框架進行項目複查工作。

Mocking是一種在測試和開發中模擬真實世界對象的一種方法,目前該方法也得到了很多項目組的追捧,其中Java中有10%、Ruby裏有7%的項目在使用該方法。

Ruby

Ruby項目裏排名前十的庫

在所調查的10000個Ruby項目中,雖然NoSQL數據庫在這些天風靡一時,但關係數據庫SQL在Ruby世界裏仍在佔主導 地位——Sqlite、postgreSQL、在研究的項目中,有25%的項目使用MySql,而Redis和MongoDB僅佔3%,其中有185個項 目採用MongoDB作爲數據庫,這個數據是Java項目裏的兩倍。 

在Web開發方面,儘管越來越多的新框架在近幾年得到追捧(例如有570個項目採用Sinatra),但Rails仍然是Ruby的中心,有超過 7000個項目使用它。Web服務器方面,Thin(有487個項目)使用率則是Unicorn的2倍。CoffeeScript似乎很受Ruby開發者 的歡迎,擁有超過1000個項目使用。 

Twitter在Ruby中也有不小的影響力,在百強項目裏,有3個庫和382個項目使用它們。這是相當龐大的,但仍然沒有谷歌在Java裏的影響力大。

JavaScript

JavaScript項目中排名前十的庫

JavaScript可以應用和支持更多類型的應用程序,但一些新特性和功能並未在語言和標準庫上得到應用。因此,在研究中我們也看到,在TOP100項目裏,有超過50%的框架被JavaScript庫所使用。

Grunt自動化框架在JS開發中扮演着非常重要的角色(尤其是node.js),在百強庫當中,有23%的庫使用它。

在JavaScript庫裏面,有一大部分的庫是用來進行網絡和客戶端/服務端通信的,數量是Java和Ruby裏的3倍。這很有可能是因爲Web 開發人員不得不在瀏覽器端處理一些支離破碎的生態系統和相對較早的服務器堆棧。而對於服務器端Web開發,Node.js的express框架佔據領先地 位,有631個項目採用它進行研發。 

努力朝着結構化方向發展,JavaScript在語言擴展上有很多優勢,在調研的1萬個項目中,有844個項目具有這一功能。此 外,JavaScript還是一門非常靈活的語言,開發者也正在使用更加結構化的方法來塑造它。Underscore.js庫提供了函數編程語言功能,類 似於一些結構化的語言,例如Scala,它在此次排行中處於第五位。(責編:王果)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章