ICFP Programming Contest 2013 Judges' Prize 受賞しました

わーい。 ICFPc での受賞は 7 年ぶり 2 回目 (前回) 。*1


コンテストの内容と自分の戦略はすでに書いた通りです。特に以下の点が評価されたそうです。

  • スクリプト言語 (Ruby) でコンパクトかつエレガントに書かれていること
  • そのわりに、今回のような計算速度が要求される課題で他に劣らない性能だったこと
  • Ruby 2.1 搭載予定の世代別 GC の性能を実証したこと (笑) *2

要約すると、Ruby のくせにやるじゃん」という受賞理由のような……。喜んでいいのかね? まあ、Judges' Prize は何が選ばれるかわからないということで。もっと奇抜な戦略をとったチームが選ばれると思ってましたが、上位陣はみんな似たような戦略だったのかな。

スコア的には 14 位なので、すっかり諦めていた分、喜びもひとしおです。そういえば、ICFPc の Judges' Prize って日本人初?ちゃんと調べてないけど。

ところで、コンパクトかつエレガントと言われてますが、実態としては「3 日間メンテできればいい」という方針で書かれたとんでもないコードです。共通化できるところをコピペしまくってたり、高速化のためにグローバル変数を多用していたり、省メモリ化のために Array を継承していたり *3 して、普通の Rubyist が見たら目がつぶれるしろものです。もう自分でも読めません。ちゃんと読んだのであろう審査員に頭が下がります。

ちなみに、会場 (Boston) には行ってません。そもそも招待の話がなかったので。一週間前に受賞のお知らせが来たのでは、もし招待されても間に合わないし。まあ、どのみちいけなかったので、いいですけどね。

そういうわけで会場行ってないのでよくわかりませんが @imos さんのツイートによると、1 位はみんなの予想通り Unagi: The synthesis 、2 位は F5 ATTACKERS という、3 位以外日本人が席巻というアレな結果だそうで。おめでとうございます。


とにかく、これから一年 Team kuma- は an extremely cool bunch of hackers ということでよろしくお願いします。

*1:なお今回の kuma- は当時と違って 2 人チームです。

*2:2.0 と比べて約 2 倍の速度で動いたので、データ構造を構築する系のプログラムを書いている人は期待していいかも。RGenGC について詳しくはささださんの発表資料を参照のこと。ただ、RGenGC とは別のバグ修正が結構効いているという噂もあり、詳しくは要調査。

*3:Ruby で組み込みクラスを明示的に継承することは基本的に地雷なので、実コードではあまりおすすめしません (Object や Exception など、継承されることが前提のものは除く) 。