在这篇文章中,我们求助于 GitHub,以找出最流行的 Scala 库是什么。为了回答这个问题,我们从 7,321 个最流行的 Scala 存储库中提取了 64,562 个依赖项。这导致这些项目使用了 5,627 个独特的库,我们很高兴今天与您分享前 100 个。我们的下一个任务是在 Scala 聚会中对啤酒厂的 啤酒消费量进行基准测试 。好吧……也许改天吧。与我们 之前在 GitHub 上对 Java 库所做的研究 相似,除了通常的怀疑之外,还有许多有趣的新趋势出现了。我们还将统计数据与大约一年半前得出的 上一轮 结果进行了比较。现在,让我们先看看我们发现的结果和见解。
原作者: Alex Zhitnitsky
前 20 个 Scala 库
Takipi 的数据
前 100 家图书馆名单的主要见解
(完整结果可 在此处 获得)
1. Scala 生态系统发展迅速。超级快。前 100 名列表中有 33 个新条目 - 与我们上次在 GitHub 上使用 Scala 进行的分析相比,大约三分之一的列表发生了变化。这告诉我们,除了 Typesafe 的框架之外,社区还生机勃勃,拥有 Scala.js 等工具和 Shapeless 等库。
2. Spark 将 Hadoop 打得落花流水—— 不像在 Java 中我们有它的翻转版本,Spark 排名第 45 位,Hadoop 排名第 95 位。 Spark 真的在这里大放异彩,成为热门排行榜的新成员。
3. Play Framework 越来越大,排名第 3 - 这个有点惊人:21.3% 的顶级 Scala 项目使用 Play 作为他们选择的框架。
4. JavaScript <3 Scala - 与一年半前相比,与 JavaScript 相关的库在排行榜上占据了很多位置。 Scala.js,Scala 到 JS 的编译器不再是实验性的,它显示在图表上 (#64)。 Typesafe 的其他 sbt 插件,如 jshint (#47)、rjs (#44) 甚至 CoffeeScript (#48) 都进入了前 50 名。
5. IntelliJ 是最受欢迎的 Scala IDE—— 有了 Eclipse 和 IntelliJ sbt 插件(sbteclipse-plugin 和 sbt-idea),我们有机会看到 IntelliJ (14.3%) 超过 Eclipse (13.5%) 成为最受欢迎的 IDE GitHub 的顶级 Scala 项目。这些结果是部分的,但可以很好地说明风向何处吹。
还有……常见的嫌疑人
1. 21 个顶级库来自 Typesafe - 毫不奇怪,Typesafe 的团队在 Akka、Play、Slick、sbt 和与 Scala 的核心集成等项目中贡献最多。
2. Akka 排在第 9 位—— 这次我们看到 Akka 被 857 个项目使用,位列前 10 名。如果你还没有机会试一试,这里有一篇很棒的文章 实现 Romeo and朱丽叶作为……当然是阿卡演员 。
3. Scalatest 和 junit 领跑排行榜 - 与 Java 类似,Scala 中的测试量很大。 Scalatest 以 2,521 个项目 (34.4%) 位居榜首,junit 以 1814 个项目 (24.8%) 位居第二。与上次相比翻转座位,junit 位居榜首。更多的测试和模拟库在图表上名列前茅。
4. Logback 是 Scala 最流行的日志库—— 排在第 5 位,有 16% 的项目在使用它,Logback 绝对是 Scala 开发人员的首选。亚军是 log4j,占 4.9%,排在第 36 位。
5. Java Guava vs Scala Guava—— 作为 Java 中最受欢迎的库之一,谷歌 Guava 在这项研究的 Java 版本中排名第 4,而在 Scala 中排名第 37。
6. Scalaz 是 Scala 番石榴—— 对 Scala 核心的扩展,带有附加的函数式编程结构,位于顶部 #18。
7. H2 是前 100 名中最受欢迎的数据库——H2 排在第 21 位,超过了 MySQL(#33)和 PostgreSQL(#50)。 MongoDB 没有列入 Scala 的名单。
8. Jetty 在 Scala 中比在 Java 中更受欢迎—— 根据我们从 GitHub 上的 Java 项目中得出的结果, Jetty 排在第 66 位。虽然最初是为 Java 构建的,但我们看到它在排名第 26 位的 Scala 中更受欢迎。
还有 5 个条目值得一提
#27 - Bintray-sbt - 用于发布和解析 Bintray 包的 sbt 接口。
#60 - Paradise - 多个版本的 Scala 编译器的插件。它旨在可靠地与 scalac 的生产版本一起工作,使最新的宏开发在它们最终出现在未来的 Scala 版本中之前可用。
#65 - Webjars - 客户端 Web 库(例如 jQuery 和 Bootstrap)打包到 JAR(Java 存档)文件中。
#81 - Shapeless - Scala 的基于类型类和依赖类型的通用编程库。
#92 - sbt-ghpages - 对 sbt 项目的 gh-pages 支持,允许在 GitHub 上托管静态网站。
按类型排名前 100 的图书馆
Takipi 的数据
为了更好地了解最受 Scala 社区关注的库类型,我们按类型及其在 GitHub 最流行的 Scala 项目中的使用次数绘制了前 100 名。
我们是如何找到这些数字的?
让我们为统计数据添加一些背景信息:对于初学者,我们已经从 GitHub 中抽取了尽可能多的 Scala 项目。在第二步中,我们提取了那些使用 Maven 或 sbt 进行依赖管理的项目,以便快速访问它们的依赖项,这给我们留下了 7,321 个项目。现在我们手头有数以千计的依赖项,我们对数据进行了处理,得到了总共 64,562 条正在使用的库记录和 5,627 个独特的库。这意味着我们数据集中的平均 GitHub 项目使用 8.8 个外部库。为了使分析更容易,我们根据它们出现的 GitHub 项目的数量处理了前 100 个库的统计数据,并根据库的类型添加了一些分类只是为了它。原始数据就 在这里 和欢迎您查看并确保我们没有错过任何有趣的见解。
Scala 开发人员使用的顶级工具又如何呢?
我们在这里为您服务: