読者です 読者をやめる 読者になる 読者になる

seratch's weblog in Japanese

About Scala, Java and Ruby programming in Japaense. If you need English information, go to http://blog.seratch.net/

Scala DB ライブラリ事情(2014/06 版)

最初に調べてから一年経ったので、また GitHub スター数の推移を見てみました*1。というか、こういうの自動化するサービスがあるといい気がしてきたけど。。

DB ライブラリ

順位 名前 2013/06 2013/07 2013/08 2013/09 2013/10 2014/06 総増減
1 Slick 613 638 658 692 717 922 +309
2 postgresql-async 159 187 213 227 240 421 +262
3 Squeryl 322 329 334 338 340 365 +43
4 ScalikeJDBC 112 135 141 150 180 274 +162
5 Querulous 154 157 158 162 164 170 +16
6 scala-activerecord 92 101 104 113 130 168 +76
7 Activate 85 94 99 103 112 163 +78
8 sqltyped 109 108 110 119 121 162 +53
9 SORM 91 95 97 100 102 127 +36
10 ScalikeJDBC-Async - 14 20 27 28 59 +59
11 Prequel 35 37 39 41 44 58 +23
12 Relate - - - - - 42 +42
13 DataExpress 24 24 27 27 29 37 +13
14 Scala SQL DSL 28 27 27 27 28 28 0
15 jdub - - - - - 24 +24
16 MyBatis Scala 1 3 4 4 7 14 +13
17 ScalaSQL 12 13 13 13 13 13 +1
18 Scweery 12 12 12 12 12 11 -1
19 mirage-scala 4 4 4 5 5 7 +3
20 shirahae-sql - - 2 2 2 2 +2

フレームワークの一部

順位 名前 2013/06 2013/07 2013/08 2013/09 2013/10 2014/06
1 Anorm - - - 3697 3797 4906
2 Lift Mapper - - - 717 722 796
3 Spring JDBC Scala 154 168 182 194 212 262
4 Skinny ORM - - - - 99 251
5 Circumflex ORM 136 136 137 140 143 155

感想など

Slick と postgresql-async のスターがかなり増えていますね。また、手前味噌ですが ScalikeJDBCSkinny ORM も順調に成長できたといってよいのではないかと思います。

注目すべき点としては Relate というライブラリが出てきてなかなか面白い存在です。Anorm と比較して「パフォーマンス的に生 JDBC と同等」とうたっています。

https://www.lucidchart.com/techblog/2014/06/17/performant-database-access-relate/

提供している Lucid Software というのはデータ分析をビジネスとする会社のようです。元々 Anorm を使っていたものの、かなり大量のデータを扱う必要があって ResultSet からの取り出し部分でのオーバーヘッドが無視できなかったため、独自で開発したとのこと。ここでいうオーバーヘッドは ResultSet からの取り出し部分に限った話なので、通常はそれほど重視する必要はないかなと思いますが、速いのはよいことですね。

また Simple Finance Technology という会社が出している jdub というライブラリを見落としていたようで、こちらを加えました。ただ、この会社が Scala 2.9.2 を使い続けているのか、他のバージョンへのリリースがされておらず、新しい Scala のメジャーバージョンが出る度に issue が登録されている状況のようです。ていうか、なんかビルドが Maven だけど...。

この会社、テストライブラリも自作していたりして、なかなか興味深いです。

https://github.com/SimpleFinance/simplespec

simplespec も Maven でやっているようですが、こちらは 2.11 にもビルドしているようなので jdub は一部の Scala 2.9.2 なレガシープロジェクトだけで使っているということなのかもしれません。

一般的にライブラリの提供元が会社であるということは、半強制的にメンテナンスがチーム体制となるので、継続性という面はプラス要因といえます。それだけでなく、少なくとも何らかの本番環境で使われているということの証明でもあります。最近の OSS では会社をつくるケースが増えている印象もありますが、やはり仕事の一環としてメンテナンスされているというのはよい状況だと思います。

私がやっているようなボランティアベースの開発においても、そのライブラリを使っている会社の開発者を積極的に関係者に巻き込んでいくことで、会社をまたいだ業界内のギルトのようなチーム*2でメンテされる状況をつくることができればいいと思っています。ということで、既に関わってくださっている方々にはとても感謝しております。いつもありがとうございます。

*1:なお、もちろんスター数が多いからよいライブラリとは限らないのですが、必要条件ではあるとは思います

*2:日本だけでなく海外も含め、ですが