`
zhb8015
  • 浏览: 397172 次
  • 性别: 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...

    前端开源库-travis-ci

    `node-travis-ci` 是一个用JavaScript编写的库,允许开发者通过Node.js接口与Travis CI API进行交互。它可以用于获取构建状态、触发新的构建、管理仓库设置等操作。例如,你可以使用这个库自动化以下任务: - 监控...

    clef-lilas.github.io:CLEF 2020实验室中用于学术搜索的实验室网站(LiLAS 2020)

    7. **Git和版本控制**:作为一个开源项目,项目管理中必定包含了Git进行版本控制,确保团队成员间的协同工作和代码历史追踪。 8. **持续集成/持续部署(CI/CD)**:可能采用了自动化测试和部署流程,如Jenkins或...

    brackets-ruby-rsense-hints:括号 Ruby Rsense 提示代码完成

    5. **项目兼容性**:描述中提到的不完整性可能是指插件对特定Ruby项目或版本的支持情况,开发者在使用前需要确保其与自己的开发环境兼容。 6. **开源社区**:“master”分支的出现意味着该项目遵循开放源代码的实践...

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

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

    前端开源库-cake-mocha

    `cake` 是基于Node.js的一个构建工具,它的语法与Ruby的`Rake`类似,允许开发者编写脚本来执行项目构建、测试、打包等任务。Cake通过Cakefiles(类似于Rakefiles)来定义这些任务,使得项目维护变得更加有序。...

    cardboard_project

    描述中的“由团队创建的用生成的Rails应用程序”暗示了项目可能经历了标准的Rails项目初始化过程,包括使用`rails new`命令来生成基础项目结构。Rails会自动设置目录结构、默认配置和必要的gem依赖,以便开发者可以...

    adaptlearning.github.io:适应学习网站

    4. 后端技术:可能包括Node.js,使用JavaScript进行服务器端编程,或者与其它后端语言(如Python的Django或Ruby的Rails)集成。 5. 数据库:存储用户信息、学习进度和行为数据,可能采用MongoDB、MySQL等。 6. API...

    资源分享网站项目

    - **后端技术**:可能使用Node.js、Django、Flask或Ruby on Rails等后端框架,处理HTTP请求、数据存储和业务逻辑。 - **数据库**:项目可能使用MySQL、PostgreSQL或MongoDB等数据库系统来存储用户信息、资源详情和...

    开源项目-nuclio-nuclio.zip

    2. **语言支持广泛**:Nuclio支持多种编程语言,包括Python、Node.js、Go、Java、Ruby等,开发者可以根据自己的需求选择最适合的语言编写函数。 3. **自动伸缩**:Nuclio具备自动扩展能力,可以随着事件负载的增加...

    test-models-ruby

    标题“test-models-ruby”和描述中的信息虽然简洁,但可以推测这可能是一个与Ruby编程语言相关的项目,特别是涉及到测试模型的实现。在Ruby中,测试是开发过程中的重要组成部分,确保代码的质量和可靠性。这里,我们...

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

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

    当使用AWSLambda时实现类似Heroku的体验

    在Lambda中,我们需要将所有依赖项打包到函数代码中,或者使用AWS的Layers功能来共享和管理跨函数的库。 6. **持续集成/持续部署(CI/CD)**:Heroku与多种CI/CD工具如Jenkins、Travis CI和CircleCI集成良好。AWS也...

    web开发培训

    常见的后端语言有PHP、Python(Django或Flask框架)、Ruby(Ruby on Rails框架)、Java(Spring Boot框架)和Node.js(Express框架)。理解这些语言的基本语法和面向对象编程概念是必要的。数据库方面,MySQL、...

    Arachni中文文档

    Arachni开源扫描器中文版 1. 部署方便,编译安装、直接运行都可以...9. API: Arachni 基于 ruby 语言编写,提供了完整的 REST API, 也提供RPC API ! 10. 官方wiki详细,作者会回复,可二次开发,开源! 11. 有webui界面!

    MonSiteWeb:仓库倒车站点网站人员

    同时,后端可能采用了Node.js、Django或Ruby on Rails等服务器端技术,与数据库(如MySQL、MongoDB或PostgreSQL)进行交互,处理业务逻辑和数据存储。 总的来说,"MonSiteWeb:仓库倒车站点网站人员"是一个以HTML为...

    testrepo:测试库

    2. 测试框架:项目可能使用了特定的测试框架,如JUnit(Java)、pytest(Python)或Mocha/Chai(JavaScript),这些框架提供了编写和执行测试用例的结构。 3. 单元测试:测试库可能包含了大量的单元测试,针对代码...

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

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

    web开发记录

    常见的后端编程语言有Java、Python、Node.js、Ruby等,配合Web框架如Spring Boot、Django、Express、Rails等进行高效开发。后端开发者需要理解RESTful API设计,用于前端和后端之间的通信,以及状态管理,例如使用...

    eclipse安装.docx

    Eclipse 最初主要针对 Java 开发,但因其高度模块化和可扩展性,它支持众多其他编程语言,如 C/C++、Python、PHP、JavaScript、Ruby 等。以下是关于 Eclipse 的详细介绍及其主要功能: 1. **多语言支持**:Eclipse ...

Global site tag (gtag.js) - Google Analytics