2015年最受Scala开发者欢迎的类库前100名排行

jopen 7年前

    英文原文:  The Top 100 Scala Libraries in 2015

作者: Alex Zhitnitsky

翻译:陈英华(iintothewind@cnblogs)

Alex Zhitnitsky 之前做过一个关于 java 类库的排行,现在他着手从 64562 个 Scala 使用的库依赖中开始研究 Scala 类库的排行。整个工作耗时一月,下面是他出色的研究成果。

基于 64562 个类库的分析,Github 上 Scala 项目使用最多的类库到底有哪些呢?

在这篇文章中我们将进入 github 去发现到底哪些类库最受 Scala 开发者欢迎。

为了回答这个问题我们从最受欢迎的 7321 个 Scala 代码仓库中抽取了 64562 个库依赖。通过分析去重,我们从这些项目中得到了 5627 个不同的类库,我们怀着非常激动的心情来跟大家分享其中的前 100 个。我们下一个任务是去 Scala 开发者见面会等场所调查关于啤酒酒量与编程水平相关性分析(benchmark beer consumption),希望下次再分享给大家。

跟上次我们对于 github 上 Java 类库使用排行的研究类似,排斥了些许干扰的情况下,我们发现了一些有趣的趋势。我们将这次的数据跟一年半前上次 Java 类库排行的数据做了一下对比。现在,让我们看看我们的研究结果和发现吧。

最受 Scala 开发者欢迎的类库排名前 20

2015年最受Scala开发者欢迎的类库前100名排行

Data by Takipi

从类库排名前 100 的列表中得到的主要发现

完整列表下载:https://docs.google.com/spreadsheets/d/10ZgUgU_wl7FpqlJjfk96hUHXGQWPbNzjvbout9tnGpQ/edit#gid=0

1、Scala 生态系统正在飞速发展,前 100 名中 33 个是新类库

与上次我们在 Github 上做的 Scala 类库排名的分析结果相比,列表的三分之一成员发生了变更。这说明除了 Typesafe 的框架,Scala。js 和 Shapeless 等工具的出现,可以表明整个社区是非常活跃的。

2、Spark 的受欢迎程度已经远超 Hadoop

跟 Java 类库的排行不一样,我们得到了一个翻转的现象,Spark 名列 45 位,而 Hadoop 排在 95 位 。Spark 确实发展壮大了,对前 100 排名来说是一个重要的新成员。

3、Play Framework 爬到了第 3 名

它的发展令人吃惊:21。3% 的顶级 Scala 项目将 Play 作为框架的首选

4、JavaScript 类库的使用有所上升

与一年半以前相比,JavaScript 类库在排名当中占据了更多席位。能将 Scala 语言转换为 JavaScript 的编译器 Scala。js 已经不再是实验版本,它出现在了 64 位,其他比如 jshint (47 位),rjs (44 位)等 Sbt 插件,甚至 CoffeeScript (48 位)都进入了前 50。

5、IntelliJ 是最受欢迎的 Scala IDE

从 Eclipse 和 IntelliJ SBT 插件(sbteclipse-plugin 和 sbt-idea)的比较当中,我们有机会看到 IntelliJ 以 14。3% 的使用率超越了 Eclipse (13。5%)成为了 Github 上顶级 Scala 项目中最受欢迎的 IDE。 虽然抽样的数据依然是片面的,但至少让我们能感觉到潮流风向。

还有... 寻常的发现

  • 21 个顶级库依赖来自于 Typesafe

这毫不令人感到吃惊,Typesafe 团队在跨 Akka,Play,Slick,sbt 和 core intergration with Scala 等多个项目中做着贡献。

  • Akka 位于第 9 名且前进势头非常强劲

上次我们做排名分析的时候 Akka 在 857 个项目中被使用且排名第 10。 如果你还没来的及学习它的话,可以参考这里:implementing Romeo and Juliet as… Akka Actors of course。

  • ScalaTest 和 JUnit 在测试库依赖中遥遥领先

跟 Java 类似,测试活动在 Scala 中占据比重也是巨大的 。ScalaTest 在 2521 个项目中被使用(占比 34。4%)占据测试库依赖排行首位,JUnit 在 1814 个项目中被使用(占比 24。8%)位居第二。跟上次排行 JUnit 位居首位相比,一二名的位次发生了翻转。还有更多的 testing 和 mocking 类库占据了排名。

  • logback 是 Scala 项目的最受欢迎日志库依赖

logback 以第 5 位的排名被 16% 的项目所使用,理所当然的成为了 Scala 开发者的首选。第二名是占比 4。9% 位居第 36 位的 log4j。

  • Java Guava 与 Scala Guava 之争

Google Guava 曾经在上次 Java 库依赖排行中居第 4 位,在本次 Scala 库依赖排名中下降到了第 37 位。

  • Scalaz 成为 Scala 版本的 Guava

作为 Scala Core 的扩展, 使用函数式编程创建的 Scalaz 位于排名的第 18 位

  • H2 是排名前 100 列表中最受欢迎的数据库

H2 排名第 21 位,超过了 MySQL (33 位)和 Postgresql (50 位) 。MongoDB 没有进入前 100 排名。

  • 相比 Java 项目,Jetty 更受 Scala 项目欢迎

Jetty 在上次我们对于 Java 项目的库依赖排名中位于第 66 位,虽然 Jetty 原来为 Java 所创建,我们看到在 Scala 中的更受欢迎,排名到了第 26 位。

5 个值得一提的库依赖

第 27 位 Bintray-sbt

发布和解析 Bintray 包的 sbt 接口

第 60 位 Paradise

多版本 Scala 编译器插件。它被设计用来同产品发布用的 scalac 可靠的工作,使用最新开发的宏编译来避免将来在 production 环境不得不更新 Scala 版本的情况。

第 65 位 Webjars

打包客户端 Web 库依赖(比如 jQuery 和 Bootstrap)到 Jar 文件

第 81 位 Shapeless

基于 type class 和 dependent type 的泛型编程库

第 92 位 sbt-ghpages

sbt 项目的 gh-pages 支持,允许在 Github 上管理静态网站

排名前 100 按类型分类

2015年最受Scala开发者欢迎的类库前100名排行

为了更好的理解 Scala 社区最受关注的类库类型,我们绘制了按类型区分的前 100 排行和他们在 Github 上最受欢迎的 Scala 项目中用量的图。

我们怎么发现这些数字的?

先让我们对这统计数据做一下上下文介绍:从一开始我们根据 Github 上 star 数量来筛选 Scala 项目,第二部我们从使用了 Maven 或者 sbt 的那些项目中快速抽取了库依赖信息,这样我们得到了 7321 个项目的数据。现在我们手中就有成千上万的库依赖信息了,然后我们通过数据压缩得到了 64562 条库依赖信息和 5627 个去重的库依赖。这表明我们研究的 Scala 项目中平均每个项目使用 8.8 个外部依赖。为了让分析更加简单,我们统计出了前 100 名,并绘制图形。

欢迎你下载查看这些数据,以保证没有错误任何有意思的发现。

最受 Scala 开发者喜爱的工具排名?

The Top 15 Tools Developers Use After Major Releases

How to See the Variable State That Leads to Error in Production

来自:http://news.cnblogs.com/n/525813/