我们分析了30,000个GitHub项目-以下是Java,JS和Ruby排名前100的图书馆

开发人员每天面临的最大难题之一是要使用哪些软件库。 选择热门的新框架还是已经使用了10年的“无聊”的经过反复测试的框架? 使框架成功的主要因素之一是其用户和贡献者社区。 虽然很容易知道有多少人为一个项目做贡献(特别是如果它是开源的),但是很难知道实际上有多少人在使用它。 我们决定采用数据驱动的方法来回答这些问题。

GitHub目前托管着超过一百万个项目。 项目范围从小型公用事业和测试应用程序一直到拥有数百名贡献者的大规模基础设施项目。 这样,它提供了一个相当多样化且最新的数据集可供探索,这也表明了封闭源代码和企业软件的趋势。

我们在GitHub上选择了3种主要语言-Java,Ruby和JavaScript。 对于每个项目,我们分析了10,000个项目 (即GitHub存储库),这些项目倾向于开发人员最喜欢的项目。

我们分析了最常用的100个组件中的哪些,并将它们分为几类(例如,Testing,DB,UI等)。 看到这些不同语言之间的差异是非常有趣的。

以下是一些值得注意的发现以及每种语言的前十名库(您可以在本文的底部找到完整列表):

Ruby

Ruby

  • SQL仍然占主导地位 。 尽管NoSQL数据库近来风靡一时,但关系数据库(SQL)仍在Ruby世界中占主导地位– 25%的项目中使用了Sqlite,postgreSQL,MySql,而Redis和mongo仅在3%的项目中使用。
  • 但是, MongoDB在185个条目中仍然在Ruby中很流行,这是Java中项目的两倍。
  • 在Web开发中,我们看到,尽管在最近几年中吸引了新的框架(例如Sinatra拥有570个条目),但Ruby仍然以Rails为中心,有7,000多个项目。 对于Web服务器,与Unicorn相比,使用Thin (具有487个条目)的项目要多两倍。
  • 拥有1000多个项目的Ruby Web开发人员似乎很喜欢CoffeeScript (一种基于JavaScript的新语言层)。
  • Twitter在Ruby中也产生了很大的影响,在前100个项目中有3个库使用了382个项目。 虽然这相当大,但仍不及我们稍后看到的Google对Java 影响那么大。

JavaScript

Java脚本

  • JS是零散的 。 Java中最重要的组件达到了项目的30%。 对于Ruby来说大约是20%。 对于JS来说,甚至不到10%。 随着JavaScriptSwift发展以支持更多类型的应用程序,许多新功能尚未被语言或标准库所吸收。 结果,在前100名中,我们发现JavaScript中使用的框架比Ruby和Java中使用的框架多50%,这表明该语言仍处于早期阶段。
  • 咕unt声很大 。 Grunt自动化框架在JS开发(尤其是node.js)中扮演着非常重要的角色,前100个库中23%插入了该框架。 Grunt似乎正在填补JS的构建,测试和部署周期中的空白。 这可以通过其他著名工具(例如Maven或Jenkins)从项目外部使用Java等语言进行处理。
  • 联网仍然是一个大问题 。 JavaScript库的很大一部分(前100名中的7%)专注于网络和客户端/服务器通信。 这是Java和Ruby的三倍。 这很可能是由于Web开发人员必须在浏览器端处理零散的生态系统以及服务器堆栈的相对早期状态。
  • 对于服务器端Web开发– node.js的快速框架以631个条目领先该图表。
  • 努力结构 。 JavaScript还具有数量最多的844个条目的语言扩展。 有趣的是,尽管JavaScript是一种非常灵活的语言,但是开发人员正在寻找将其塑造为更结构化的东西的方法。 Underscore.js提供的功能编程功能类似于在更具结构性的语言(例如Scala)中发现的功能,拥有416个条目,使其成为第五大流行的JS库。

Java

Java1

  • 现在是番石榴季-Google代码已成为主流 。 Spring和Apache库如此普遍,它们实际上是该语言的一部分,在前100个库中,有25%以上在这两个库之间平均分配。 令人惊讶的是,谷歌制造的库(如GWT和Guava)在Java中的流行率居前100名的7%。似乎我们生活中还有一个更大的领域,而谷歌在其中占有很大的份额。
  • BigData – Hadoop领先 。 数据处理是Java的重要组成部分,前100个库中有16个专注于数据库管理,而Ruby中有12个库,JavaScript中有5个库(当然,更多的是客户端语言)。
  • 有趣的是,Hadoop兑现了其作为168个条目的领先大数据技术的承诺。 确切地说MySql是最著名和最常见的SQL DB之一,具有225个条目。 另一个著名的关系数据库Postgre SQL有121个。
  • ElasticSearch是一种用于搜索大数据集的新技术,在GitHub上也有很好的表现,有100多个项目正在使用它。
  • 在Java和Ruby中,测试驱动开发(TDD)的功能非常强大(但在JS中却不是) –在这三种语言中,我们都认为测试扮演着非常重要的角色。 在Java和Ruby中,审查的项目中有40-50%使用的是自动测试框架。 领先的是Java中的JUnit和Ruby中的RSpec 。 在JavaScript中,使用测试框架的项目所占的比例要低得多,仅为25%。
  • 模拟( Mocking )是一种用于在测试和开发中模拟现实世界对象的方法,在Java中有10%的项目在Ruby中有7%的项目得到了广泛的应用。 在JavaScript中,模拟仍然几乎不存在。

单击此处查看完整的前100个库列表。


翻译自: https://www.javacodegeeks.com/2013/12/we-analyzed-30000-github-projects-here-are-the-top-100-libraries-in-java-js-and-ruby.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值