`
zhb8015
  • 浏览: 380160 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

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,它在此次排行中处于第五位。(责编:王果)

分享到:
评论

相关推荐

    Java开源的下一代社区平台Symphony.zip

    我们非常期待你加入到这个项目中,无论是使用反馈还是代码补丁,都是对 Sym 一份满满的爱 ❤️ 讨论区 到 Sym 官方讨论区发帖(推荐做法) 来一发 issue 加入 Sym 开发支持 Q 群 17370164 感悟 在实现 B3...

    编程学习,编程语言,php,android,java,c,javascript 编程语言教学,资讯

    整合了各种语言(php,android,c,c++,html,div+css,python,ruby等)在工作和面试中遇到的问题 随时随地的阅读,提高我们的时间碎片利用率 我们在路上...我们不断的学习.

    sample-template-rails:模板存储库用作新的Ruby on Rails Twilio示例应用程序的基础

    但是,如果您使用的是诸如Sinatra之类的其他框架,这些框架具有其自己的标准化应用程序结构,则应尝试使用与该项目相同的README结构以及测试覆盖率,配置等来合并这些框架。特征框架版本6 Node.js用于通过服务前端...

    sample-template-nodejs:模板存储库用作新的Twilio示例应用程序的基础

    但是,如果您使用的是像React.js,Angular这样的框架或它们自己的标准化应用程序结构附带的框架,则应尝试使用与该项目相同的README结构以及测试覆盖率,配置等来合并这些框架。特征使用Node.js Web服务器基本的Web...

    violay-rainbow-school.github.io:网站版本统计

    网站统计 安装 安装程序Ruby: sudo apt-get install ruby-full build-essential zlib1g-dev echo ' # Install Ruby Gems to ~/gems ' >> ~ /.bashrc echo ' export GEM_HOME="$HOME/gems" ' >> ~ /....使用率 本地语

    docs:Codacy文档

    遵循此存储库中使用的Markdown约定 部署对文档的更新或发布新的文档版本 通过参与该项目,您应该遵守 。 什么是编码 是一个自动化的代码审查工具,可以监视您的技术债务,帮助您改善代码质量,向开发人员讲授最佳...

    brotli-perf-test

    此存储库是核心Brotli代码(来自 )的包装,该代码编译并安装了可在任何C / C ++程序中使用的库。 要安装libbrotli,请首先确保已安装libtool,autoconf和automake。 然后: git clone ...

    redux-hot-cold-challenge

    该项目是通过引导的。 您将在下面找到一些有关如何执行常见任务的信息。 您可以在找到本指南的最新版本。 目录 添加样式表 后处理CSS 添加图像和字体 使用public文件夹 更改HTML 在模块系统之外添加资产 何时使用...

    bgraham-react-hot-cold-static

    该项目是通过引导的。 您将在下面找到一些有关如何执行常见任务的信息。 您可以在找到本指南的最新版本。 目录 添加样式表 后处理CSS 添加图像和字体 使用public文件夹 更改HTML 在模块系统之外添加资产 何时使用...

    create-react-app-hapi

    标记运行测试文件名约定命令行界面版本控制集成写作测试测试组件使用第三方声明库初始化测试环境集中和排除测试覆盖率报告持续集成禁用jsdom 快照测试编辑器整合开发隔离组件制作渐进式Web应用程序部署方式使用...

    w7d4-Rachel-Filipp-HotNCold

    标记运行测试文件名约定命令行界面版本控制集成写作测试测试组件使用第三方声明库初始化测试环境集中和排除测试覆盖率报告持续集成禁用jsdom 快照测试编辑器整合开发隔离组件制作渐进式Web应用程序部署方式使用...

    redux-hot-cold

    标记运行测试文件名约定命令行界面版本控制集成写作测试测试组件使用第三方声明库初始化测试环境集中和排除测试覆盖率报告持续集成禁用jsdom 快照测试编辑器整合开发隔离组件制作渐进式Web应用程序部署方式使用...

    W7D4---RichardDonny:热|| 寒冷的

    标记运行测试文件名约定命令行界面版本控制集成写作测试测试组件使用第三方声明库初始化测试环境集中和排除测试覆盖率报告持续集成禁用jsdom 快照测试编辑器整合开发隔离组件制作渐进式Web应用程序部署方式使用...

    beaker-rails:一个专注于安全性和 100% 测试覆盖率的准系统 Rails 4.1 入门应用程序

    身份验证(使用 bcrypt 和has_secure_password ) 用户账户管理 忘记/重置密码 100% 代码覆盖率 用什么? 数据库:PostgreSQL 测试:RSpec 意见:Erb 样式表:SCSS Javascript:咖啡脚本 启动新应用 将此 repo...

Global site tag (gtag.js) - Google Analytics