RubyWorld Conference2011に行ってきた

毎年恒例(今年で3回目)のRubyWorld Conferenceに行ってきました。昨年はうっかりチケット予約し忘れるというしょぼい失態で会場に入れませんでしたが今回は早めの予約でバッチリですw


さて、会場の「くにびきメッセ」に到着すると既に参加者達がゾロゾロと歩いておられました。なかには先生に引率された学生さんとおぼしき方々もおられます。

そのときのfoursquareからのツイート

オープニングセレモニー
オープニングはまず、Ruby開発者まつもとさんの挨拶からはじまり、島根県の溝口知事、続いて松江市松浦市長の挨拶がありました。この手のカンファレンスとして、開催地の市長ばかりか県知事まで挨拶するというのは異例だと思います。もともと島根県および松江市Rubyによる産業振興に力を入れているのは地元では知られている事ですが、知事と市長が揃って挨拶するというのは行政としてRubyをバックアップしていくという考えを改めて明確にしたものだったと思います。

ツイッターのタイムラインでも驚いている人が居ましたし、まつもとさんによる「知事と市長が挨拶するRubyカンファレンスがほかにあるだろうか、いや、ない。」というツイートも次々とリツイートされるなど印象的だった事が伺えます。

まつもとさんによる基調講演


まつもとさんの基調講演で印象的だったのは、まつもとさんがおっしゃった

Rubyがいつのまにか廃れて、いつのまにか話題にも上らなくなる。それはいやなんです、いやなんです!」
(要約 ちょっとうろおぼえ...^^;)

という文言です。まつもとさんのRubyに対する深い思い入れと愛情が伝わってきた瞬間でした。

また、Rubyの今後の方向性として「転がり続ける石に苔は生えない」という外国の諺を紹介し、Rubyは一所に留まらずに常に進化するという方向性を示されました。企業によっては「できるだけ変化せずに安定しておいて欲しい」という所もあるようで、実際、会場からそのような質問もありましたが、Rubyという言語の開発者としては今まで通り基本方針として進化し続ける方向であることを改めて示されました。

また、最後の所で島根県の予算編成システム(受注金額は億単位)がRubyで開発中である事も明かしました(このへんは、まつもとさんが言われたのか知事だったか別の人だったかよく覚えてません...)。

その後の講演はどれも興味深いものでしたが、紙面の関係上(えw)幾つか僕が特に興味を引きつけられたものをご紹介します。




「Heroku-他言語化するアプリケーションの為のプラットフォームの紹介」

二日目のトップバッター、セールスフォース・ドットコム及川CTOによる基調講演です。この方はもともと技術畑(というかプログラマー?)の出身らしく、特に技術方面の人にとっては引きつけられる内容となりました。

講演では最初にHerokuの読み方が

ヒーロー(Hero) + 俳句(haiku) = へろく(Heroku)

であったことを明かし、読み方は「へろく」が正しいと明言しましたw (ちなみに僕はずっと「へーろく」と読んでて、今でもたまにそう言ってしまいますw)

さらにプログラミングの歴史が始まってからの多数出現した言語に触れ、Herokuは現時点で言語の実行環境としてRuby, Java, Node.js, Clojureが使えるとの事でした。Clojureが使えるのはherokuの中にClojureが大好きな人が居るかららしいです。
個人的にはErlangも使えるようになると嬉しいのですがw

ちなみに上記の「Clojureが好きな人が居るから...」は暗にherokuに新しい言語の実行環境を追加するのはそこまで難しくない事を示しているように感じました。実際、及川CTOは今後も使用可能な言語を追加していく移行を示しましたし、herokuは今後もRubyを重要な位置に置きながらも他言語化を進めていく考えのようでした。

また、質問者からのheroku(というかクラウドサービス全般)のセキュリティの不安に関する質問に関しては、「私たちはセキュリティの確保の為にこれだけの事をやっています、ということを可能な限り公開します。その上であとはお客様に判断して頂くしかない」という趣旨の事を答えておられました。本人は「うやむやな答えですみません」と行っていましたが、個人的には非常に明快な答えで好感の持てるものに思えました。

また、今回はherokuと同じようなクラウドサービス(MOGOK)を提供予定のIIJさんも講演されましたが、 どちらの講演でも思ったのですが、クラウド = 仮想環境のレンタルサーバ」的な発想から、より抽象化された、「内部を意識する必要の無いプロセス実行環境」への進化点に来ていると感じました。サーバを提供するのではなくデプロイ環境を提供するというherokuのスタンスは今後の主流になっていくのではないかと感じました。



「軽量RubyRubyによる組み込み開発」

さっきのherokuと順番が前後しますが(herokuは2日目、軽量Rubyは1日目)、つづいて九州工業大学の田中博士による軽量Rubyについての講演です。
個人的にこの講演は大変興味深く聞かせて頂きました。僕はずっとサーバ側でやってきた人間なので「組み込み」というのは未知の分野なのですが、限られたリソースの中でどのように要求を満たすかという点において、サーバとは異なる美学がある分野であるように感じていました。そういうわけで非常に楽しみにしていたワケです。

内容は期待通り、適度に技術的な深みに触れつつ全体を解りやすく説明して頂いたと思います。通常のRubyと異なる点として、軽量RubyではRubyソースのパースを行い、実行可能なバイナリにする所までを事前にやっておき、その状態のものを実機に入れて動作させるとのことでした。

このとき、必要な(要するにrequireしている?)ライブラリも一緒にバイナリ化するとおっしゃっていましたが、僕はこの点に興味を引かれました。というのも、Rubyで作ったアプリケーションを運用する上で大きな悩みの一つがこのライブラリだからです。開発環境と実行環境のライブラリバージョンの不整合はbundlerがある今でもときどき悩ませてくれます(このあたりは僕がよく理解していない点もあるかとは思いますが...)。

手元で動く状態にしたものを軽量Rubyの実行環境に送れば、実行環境のライブラリの有無に関係なく単独で動作するという事になればこれらの問題から解放されるように思ったからです。まあもともと組み込み向けの機能なのでサーバにまで広げて論じるのは早計なのですが、コソーリ期待する事にしますw


あと興味深かったのは基本的にRubyで書かれた部分はアーキテクチャに関係なく動作するようにするとの事でしたが、どうしてもアーキテクチャ依存の部分でC等で書かなければならない所は同じ機能のものをアーキテクチャ毎に用意しておき実行時に動的にバインディングするというものでした。
通常は各アーキテクチャ毎にクロスコンパイルして実行するという事でしたので、其の点が解消されるというのはなにげに凄いことだとテンションがあがりましたw

あと、軽量Ruby開発上の悩みとして「ソフトリアルタイム性」について触れておられました。Rubyは通常GC(ガーベージコレクタ)により不要になったメモリ領域の"掃除"が行われる訳ですが、これが実行されている間は他の処理が全て止まってしまいます。そしてGCがいつ走り出すかはわからない(ラインタイム側が判断する)ので、ある処理が一定時間内に終了するかどうかを保証出来ないとのことでした。

これに対して「あるフラグを立てている間はGCを走らせない」などの対策案を示されました。もちろんこの場合は「フラグが立っている間にメモリがつきたらそれで終わりです(笑)」という事でしたw あと別プロセスでGCを走らせるという案も示されました。

田中博士とは講演後に名刺交換と少しだけお話しさせて頂きました。最初に私の会社のサービス(Rubyを使った上下水道監視)を紹介すると、「実は自分も学生時代に水道関係のバイトをした事があるからとても興味があるんですよ」ということをおっしゃって思わずテンションあがりましたw
短い時間でしたがお話し出来てよかったです。B会場という2つあるうちで小さい会場の方での講演でしたが、とても有意義な時間を過ごさせて頂きました。


レセプション

最後に、1日目のラストに合ったレセプションです。僕はどっちかっていうとこういう場所が苦手で、そもそも参加されるのは今回の講演者を含めてみな名を馳せた方ばかりという印象があったので、もともと参加希望は出してしませんでした。
しかし会社としてブースに出展している関係から、レセプション参加者がブースを見に来るかもしれないからいてくれとの要請を受け、急遽参加する事になりました。

ちなみに、一応ブースの説明員のハズでしたが、始まったら早速混ざって飲み食いしてました(笑)

何人か見知った方もいらっしゃってほっとしつつ楽しくお話を聞かせて頂きました。ちなみに「入門Redmine」の著者、前田剛さんはCloudFoundaryについての講演を行ったDerek Colisonから(島根大学産学連携センター丹生晃隆先生の通訳もあり)USBのミニクラウドを貰ってかなりテンションがあがっておられましたww 僕も欲しかったのですが、Derekさんの講演の時はちょうど名刺を取りに帰ってて聞けなかったのです。講演聞いてないのにミニクラウドはクレってのも虫が良すぎる気がして遠慮しましたw あと英語わかりませんし(இωஇ) 通訳があったからとはいえ、虎穴に入って虎児をゲットした前田さん凄いです^^;

それからもともとは仕事の関係で懇意にして頂いているNaClの方々とも楽しくお話しさせて頂きました。
そしてまつもとさんのお話も聞けました^^ 僕は横の方でちょこんとおとなしくしてましたが、最後にどさくさに紛れてまつもとさんの恩師である筑波大学名誉教授の中田教授と名刺交換させて頂きました。中田教授からはまつもとさんが学生時代は、いわゆる「ほうっておいても勝手にちゃんとやってる」タイプであった事などのエピソードを伺いましたw

最後にぼっちフラグが立ったので、おもいきって初見の方に話しかけて見た所、組み込みに詳しい方で思いのほか興味深いお話を伺う事ができました。とくにソフトリアルタイムについてわかりやすく教えて頂き、話しかけてみて良かったと思いました^^
その後もテクノプロジェクトの方やRohdesについての講演を行われたシステム工房エムの大谷さん初め地元企業の方々ともお話ができ、とても有意義でした。


クロージング

2日間にわたって行われたRubyWorld Conferenceも無事終了となり、最後は実行副委員長であり、まつもとさんの所属するNaClの社長でもある井上浩さんの挨拶で終了となりました。井上社長からは、この2日間を写真で振り返るプレゼンがされ、最後は「See You Next Year!!」 で締めとなりました。最終的な参加者の合計は929人とのことでした。


所感

昨年は楽天三木谷社長がスピーカーに名を連ねていた事もあって、今年はそれよりは少し人が少ない感じがしましたが、個人的にはとても楽しい2日間でした。この記事で書いていない所でも、Yehuda Katzによるノン・ブロッキングなNet::HTTPの講演も面白かったですし、Sulayman K. Soweによる「アフリカのための持続的なプログラミング言語」も興味深く聞かせて頂きました。アフリカでRubyプログラマ率が意外に高い(30%くらい、彼は調査前は0%だと思ってたらしいw)話しなどは僕も少し驚きました。

全体として、大手企業によるRubyの採用やISO規格化の話題など、かつての、ややもするとアンダーグラウンドな言語、ちょっと週末に遊ぶ言語との位置づけから一気に社会の表舞台で活躍する言語として認知された感がありました。

しかし、その中にあってもまつもとさんのスタンスはかつてと変わる事無く(実際にはご本人にはいろいろと葛藤のある事と思いますが)、その事がRubyコミュニティにとって重要な、パワーの源になっていると感じました。

それからレセプションは期せずして参加することになったのですが、やっぱり参加すると講演とかWeb上の文書には無い興味深いお話を伺えます。今まであんまり参加した事無かったですけど、これからちょこちょこと参加してみようかなと思いました。
こういう場合は英語できると良いですよね...本腰入れて勉強しようかなあw

というわけで充実の2日間でした。関係者の方々はお疲れさまでした。そしてありがとうございましたo┐ペコリ

レポートは以上です。 それでは See You Next Year!! :-)