GitHub上一些最受欢迎的Scala项目使用的顶级库是什么? 基于分析64,562个依赖关系
在这篇文章中,我们转向GitHub,以找出野外最受欢迎的Scala库是什么。 为了回答这个问题,我们从最受欢迎的Scala存储库中的7,321个中删除了64,562个依赖项。 这些项目使用了5,627个独特的库,很高兴今天与您分享前100名。 我们的下一个任务是在Scala聚会中对啤酒厂的啤酒消费量进行基准测试 。 好吧……也许再等一次。
与我们之前在GitHub上使用Java库所做的研究相似,除了常见的怀疑之外,还有许多有趣的新趋势出现。 我们还将统计数据与大约一年半前我们拿出的最后一轮结果进行了比较。 现在,让我们首先看看我们发现的结果和见解。
斯卡拉20大图书馆
![Takipi的数据](https://i-blog.csdnimg.cn/blog_migrate/b137632cafa526bd302fa0105436d175.png)
Takipi的数据
图书馆百强榜单的主要见解
(完整的结果在这里可用)
- Scala生态系统发展Swift。 超级快。 前100名列表中有33个新条目–与我们上次在GitHub上对Scala进行的分析相比,该列表的三分之一已更改。 这就告诉我们,除了类型安全的框架,社区是活蹦乱跳,与像工具Scala.js和库像无形 。
- Spark使Hadoop脱颖而出–与Java具有相反版本的Java不同,Spark排名第45,Hadoop排名第95。 Spark确实在这里取得了成功,成为热门榜的新成员。
- Play框架越来越大,排在第3位–这是一个了不起的事情:21.3%的顶级Scala项目使用Play作为他们选择的框架。
- JavaScript <3 Scala –与一年半以前相比,与JavaScript相关的库在风云榜上占据了很多席位。 Scala.js,从Scala到JS的编译器Scala.js不再具有实验性,它显示在图表上(#64)。 Typesafe的其他sbt插件,例如jshint(#47),rjs(#44)甚至CoffeeScript(#48)均进入前50名。
- IntelliJ是最受欢迎的Scala IDE –通过Eclipse和IntelliJ sbt插件(sbteclipse-plugin和sbt-idea),我们有机会看到IntelliJ(14.3%)超过Eclipse(13.5%),成为GitHub最受欢迎的IDE。顶级Scala项目。 这些结果是不完整的,但是对于风向何处有很好的感觉。
还有……通常的嫌疑犯
- 顶级库中的21个来自Typesafe –毫不奇怪,Typesafe的团队在Akka,Play,Slick,sbt和Scala核心集成等项目中贡献最大。
- Akka排名第9位-这次我们看到Akka被857个项目使用,排在前10名。如果您还没有机会尝试一下,这是一篇出色的文章,将Romeo和Juliet实施为…当然是Akka演员 。
- Scalatest和junit占据榜首–与Java相似,Scala中的测试非常庞大。 Scalatest以2,521个项目(34.4%)位居榜首,而junit以1814个项目(24.8%)位居第二。 与上次junit排名靠前的座位相比,我们的座位翻转了。 更多的测试和模拟库在图表上位居榜首。
- Logback是Scala最受欢迎的日志记录库–排在第5位,并且有16%的项目正在使用它,Logback绝对是Scala开发人员的首选。 亚军是log4j,排在第36位,占4.9%。
- Java Guava与Scala Guava –作为Java中最受欢迎的库之一,Google Guava在该研究的Java版本中排名第四,在Scala中排名第37。
- Scalaz是Scala Guava –对Scala核心的扩展以及其他功能性编程构造在#18的顶部。
- H2是前100名中最受欢迎的数据库-排在第21位,H2排名超过MySQL(#33)和PostgreSQL(#50)。 MongoDB没有列入Scala的清单。
- 在Scala中,Jetty比在Java中更受欢迎–根据我们从GitHub上的Java项目获得的结果, Jetty排名第66。 虽然最初是为Java构建的,但我们发现它在Scala中更流行,排在第26位。
另外5个条目值得一提
- #27 – Bintray-sbt –用于发布和解决Bintray软件包的sbt接口。
- #60 – Paradise –用于多个版本的Scala编译器的插件。 它旨在与scalac的生产版本可靠地配合使用,从而使最新的宏开发可用,直到最终在Scala的后续版本中发布。
- #65 – Webjars –打包到JAR(Java存档)文件中的客户端Web库(例如jQuery和Bootstrap)。
- #81 – Shapeless – Scala的基于类型类和依赖类型的通用编程库。
- #92 – sbt-ghpages –支持sbt项目的gh-pages,允许在GitHub上托管静态网站。
按类型排名前100位的图书馆
![Takipi的数据](https://i-blog.csdnimg.cn/blog_migrate/51ee57fe019b5515e124ca18660b18ff.png)
Takipi的数据
为了更好地了解Scala社区中最受关注的库的类型,我们在GitHub最受欢迎的Scala项目中按类型和使用次数绘制了前100名。
我们如何找到这些数字?
让我们在统计数据中添加一些背景信息:对于初学者,我们已经从GitHub尽可能多地抽取了Scala项目。 在第二步中,我们提取了使用Maven或sbt进行依赖管理的对象,以快速访问其依赖,这给我们留下了7,321个项目。 现在我们手头有成千上万的依赖项,我们对数据进行了整理,总共获得了64,562个正在使用的库的记录,以及5,627个唯一的库。 这意味着我们数据集中的GitHub项目平均使用8.8个外部库。 为了使分析更加容易,我们根据出现的GitHub项目的数量处理了排名前100位的库的统计信息,并根据库的类型添加了一些分类。
原始数据在这里可用,欢迎您查看并确保我们不会错过任何有趣的见解。
那么Scala开发人员使用的顶级工具又如何呢?
我们在这里为您服务:
看到我们在数据中遗漏的东西了吗? 请在下面的评论部分中告诉我们。