Github專案中使用率最高的Java/Ruby/JS庫

csdn發表於2013-12-04

  提到開源,相信不少人會想到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,它在此次排行中處於第五位。

  最後 附上相關資料文件

  來自: THE TAKIPI BLOG

相關文章