もう2013年も残すところ数日なので、振り返ってみましょう。
2012年はこんなもの
書きましたが、今年はScalazのコミッターになったり色々あって、github上でのかなりの活動の部分をScalazが占めるので、まずScalaz中心に2013年の自分の活動とScalaz自体を振り返ります。
Scalaz以外の2013年のまとめは、気が向いたら書くかもしれないし、書かないかもしれません。
まず、時系列で重要だと思った変更をまとめてみました*1
- 1月
- 4日 Foldable1とTraverse1の追加 https://github.com/scalaz/scalaz/pull/241
- 29日 ReadWorldがIvoryTowerになる!?*2 https://github.com/scalaz/scalaz/pull/273
- 2月
- 15日 Group(数学用語で群)というtypeclass削除 https://github.com/scalaz/scalaz/pull/279
- 16日 SetがFunctorではなくなる https://github.com/scalaz/scalaz/pull/276
- 3月
- 2日 ListenableMonadWriterとMonadWriterが削除され、MonadTellとMonadListen追加。 https://github.com/scalaz/scalaz/pull/293
- 9日 IndexedContsT追加(継続モナド) https://github.com/scalaz/scalaz/pull/303
- 4月
- 3日 typelevelのtwitterアカウントできる https://twitter.com/typelevel/status/319176877237493760
- 10日 7.0.0-RC2 リリース https://twitter.com/typelevel/status/321721223555981313
- 21日 7.1.x ブランチでitervのモジュール(古いiteratee)削除 https://github.com/scalaz/scalaz/pull/340
- 22日 7.0.0 finalリリース https://groups.google.com/d/msg/scalaz/_QFqVn3jOPU/9ALoo5Dops0J
- 5月
- 7日 BKTreeとMetricSpaceがdeprecatedに https://github.com/scalaz/scalaz/commit/ed514c5e2
- 13日 7.1.0-M1 リリース https://groups.google.com/d/msg/scalaz/d46gUwLaGnE/E_WKkE9Lfb8J
- 6月
- 1日 7.0.1 リリース https://groups.google.com/d/msg/scalaz/LgSn6EgBHcA/i5oSgyFTDLIJ
- 2日 InvariantFunctor追加*3 https://github.com/scalaz/scalaz/pull/351
- 15日
- OnePlusという新しいデータ構造追加(のちに、OneAndに改名された) https://github.com/scalaz/scalaz/pull/348
- Endomorphicという新しいデータ構造追加 https://github.com/scalaz/scalaz/pull/384
- 7.1.xのブランチで、varianceを使わないように変更*4 https://github.com/scalaz/scalaz/pull/383
- 19日 Scalazのコミッターになった http://d.hatena.ne.jp/xuwei/20130619/1371615611
- 29日 Each, Length, Indexの3つのtypeclassがdeprecatedに https://github.com/scalaz/scalaz/pull/392
- 7月
- 3日 OnePlusがOneAndに名前変更。OneOrという新しいデータ構造追加 https://github.com/scalaz/scalaz/pull/412
- 7日 7.0.2 リリース https://groups.google.com/d/msg/scalaz/BZPXHyDhKAs/IzkKjKVShfYJ
- 23日 7.1.xブランチにおいてCojoinが死ぬ*5 https://github.com/scalaz/scalaz/pull/435
- 30日 Theseという新しいデータ構造が入る https://github.com/scalaz/scalaz/commit/9d16d1b1b7519d
- 31日
==>>
という名前で、HaskellのData.Mapをほぼ直訳したMapが追加 https://github.com/scalaz/scalaz/pull/418
- 8月
- 1日 7.1.0-M2 リリース https://groups.google.com/d/msg/scalaz/W7AzJzLu2J4/-8sIfPFckjIJ
- 13日 7.0.3 リリース https://groups.google.com/d/msg/scalaz/aRK428zzHkM/avcncZbC9n8J
- 9月
- 9日 Injectというtypeclass追加 https://github.com/scalaz/scalaz/pull/502
- Alignというtypeclass追加 https://github.com/scalaz/scalaz/issues/535
- 22日 7.1.0-M3リリース https://groups.google.com/d/msg/scalaz/ib68vqzwwV8/s6afUnaTHRgJ
- 10月
- 11月
- 17日 specs2が直接Scalaz7.0.x使うことにより、相互依存になって新しいspecs2を使い続けられなくなったので、specs2使うのをやめる https://github.com/scalaz/scalaz/pull/563
- 24日 7.1.0-M4 リリース https://groups.google.com/d/msg/scalaz/syOzs6rJAkA/2MWav3UoD4kJ
- 25日 7.0.5 リリース https://groups.google.com/d/msg/scalaz/q48XgfS0VvA/iSBT5Awcr1wJ
- 12月
- イマココ
続いて、自分の貢献など。
まずはscalaz-sevenのブランチでの総合のコミット数(12月26日現在)
https://github.com/scalaz/scalaz/graphs/contributors?from=2009-01-01&to=2013-12-26&type=c
_人人人人人人人人人人人人_
> 315コミットで2位! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
(細かいコミットが多いので、コミット行数だと未だに6位である)
続いて2013年のコミット
https://github.com/scalaz/scalaz/graphs/contributors?from=2013-01-01&to=2013-12-26&type=c
_人人人人人人人人人人人人人人_
> コミット数ダントツで1位 <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
というわけで、気づいたら超コアなコミッターになってました。ちなみに2012年までは、39コミットで8位でした。無職のなせる技ですね。つまり、最近の変更については、ほぼ世界一と言っていいほどScalazに詳しい(?)のでわからないことあったら聞いて下さい。
「もう大体やりつくしたし、やることないだろー」と思いつつ、今でも微妙に細かい改善点見つかります。今後の予定として、Scala2.11.0リリース*6と同時くらいにScalaz7.1.0.finalを出すらしいです。そうすると、おそらく(Scala2.9を切り捨てた)Scalaz7.2.x系の開発が始まる(?)ので、マクロなどの新機能使った開発が活発になる、と思います。
最近個人的には、ekmettのライブラリをなんとなく眺めて、なにかScalazに入れて役に立ちそうなものないかなーという感じになってます、なにやってるんでしょうね。Scalazいじるのは楽しいですけど、Scalazだけやっててもちょっとあれなので、(もちろんScalazへの貢献も続けたいですが)来年はもっと色んなものに貢献したいですね。
一応、以前書いたように
今までPlay2にしたpull request
Play2など、いくつか細かい貢献はしてますが。ちなみにScalazの次はplay2が多いみたいです。
では、よいお年を
*1:もっと詳しく知りたい人は、githubのwikiにとても丁寧にまとまってるので、そっちも見ましょう https://github.com/scalaz/scalaz/wiki
*2:詳しい議論(?)はここ https://github.com/scalaz/scalaz/issues/271 皮肉的というか自虐的ななにか https://twitter.com/xuwei_k/status/296128721138630656 https://twitter.com/xuwei_k/status/296252786172112896
*3:Scalaz6には存在していたが、なぜかScalaz7に入っていなかった
*4:共変や反変のこと。型推論などで不都合が生じるため。もちろん使わないことによるデメリットも生じるが、話し合いの末、varianceを使わないことによるシンプルさ、型推論などのメリットを選択することになった
*5:Cobindと同等な力なので必要ない
*6:今のところ2014年3月位の予定らしい