提到开源技术,相信不少人会想到Github,目前它的托管数量已经超过了一百万。上面几乎涵盖了各种类型的项目库,当然,参与贡献的开发者数量也是极多。因此,它也提供了相当多样的数据资源,一些研发人员利用这些数据来研究开/闭源、企业软件等发展趋势。
开发者每天都会面对一些软件开发库或开源库,在使用一些旧库的同时,每天都会出现许多新库,开发者如何在它们之间做出选择,找出适合自己的软件开发库呢?社区的用户数和贡献者的活跃度对一个库的成功起着非常关键的作用,这也是开发者选择的关键。对于一个开源库来说,开发者很容易知道它的贡献者数量,但一般很难知道有多少开发者使用它。本文作者采用具体的数据来解答这个问题。
作者选择了排名前三的编程语言库来进行分析,这三门语言分别是Java、Ruby、JavaScript。分别分析了它们当中最流行的10000个项目(例如Github仓库),并且从中选出最受这些项目喜爱的库。此外,他们还分析了排名前100库所使用的组件、组合种类(例如测试、数据库、UI等等),并且看看这些语言直接的不同之处。
下面分别列出了10000个Java、Ruby、JavaScript项目中使用率最高的10个库,并把一些值得特别关注的库和趋势进行总结和分析。
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项目里排名前十的库
在所调查的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可以应用和支持更多类型的应用程序,但一些新特性和功能并未在语言和标准库上得到应用。因此,在研究中我们也看到,在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,它在此次排行中处于第五位。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
OpenStack走过沉淀期:中国市场迎来新格局
开源OpenStack技术发展至今,市场的讨论声音已经越来越少;在这种情况下,不少人开始提出质疑:“OpenStack是否已经不行了?”。然而,过去11月份的OpenStack悉尼峰会却用事实给出了否定的答案。
-
阿里云首席架构师唐洪:解读开源+云的三大优势
阿里巴巴一直积极与国际开源组织合作。阿里巴巴不仅是Linux基金会的金牌会员,也是Linux社区的活跃开发者,此前已经为Linux内核提交了290多个Patch,在国内互联网公司当中贡献度第一。
-
Azure计划保护客户IP免受专利巨头的蹂躏
Microsoft是第一个拥有应用程序来专门保护其客户的知识产权(IP)免受非执行实体(更常称为专利巨头)提起的诉讼的一家云厂商。
-
AWS MEAN堆栈+JavaScript=快速搭建应用
开发人员在构建Web应用时有许多选择。市面上有无数的框架和语言可选,而像AWS这样的云平台可以方便地部署和扩展应用程序。