RubyKaigi2009 スペシャルレポート

Ruby会議2009 2日目レポート[更新完了]

この記事を読むのに必要な時間:およそ 12 分

昨日から東京都千代田区の学術総合センターにて3日間にわたり,RubyKaigi2009が開催されています。本ページでは,2日目のレポートを随時掲載していきます!

※今回のレポートは,一橋記念講堂でのセッションを中心にお送りします(全セッションを回れておりません。ご了承ください)。

イベント開始前

2日目の朝も,本日のための準備がスタッフによって行われた後,開場しました。

画像

卜部昌平さん「Ruby 1.8 のゆくえ」

Ruby 1.9が最新のメジャーバージョンになりますが,Ruby 1.8もまだまだ利用されており,メンテナンスも行われています。

卜部さんの発表は,1.8系の今後のメンテナンスの方針についてです。 現在メンテナンスされているのは1.8.6,1.8.7,1.8.8の3つです。 1.8.9については,「ないです。1.9を使いましょう。Rubyの未来は1.9のほうにあります」と述べていました。

1.8.6は,Railsアプリケーションのホスティング会社であるEngine YardのKirk Hainesさんがメンテナをされています。バグやセキュリティだけでなく,パフォーマンスについても扱う方針であるとのことでした。

1.8.7は発表者の卜部さん,1.8.8はMUSHAさんがメンテナをされています。1.8のtrunkに対するコミットについて,バグ修正がコンスタントに3割あり,この割合はまだ減っていません。セキュリティやバグ修正の優先度が高く,テストの追加修正を続けるとのことです。

また,1.8.8はStable branchとして安定させ,このことを「Stable as stable API」と表現しました。1.8.8-devは,1.8の機能として一応の完成をみたとしています。

最後に,これからの展望として,1.9への移行のギャップを少なくすることを目指していることが述べられました。

画像

画像

yuguiさん「Ruby 1.9.2ロードマップ」

1.9系の未来について,1.9系のリリースマネジメントをしているyuguiさんが発表しました。

冒頭,1.9.1と1.9.2のリリースをこの場でできればかっこいいと思って準備していたが,会場でのイーモバイルの調子が悪いため,発表が終わってからリリースを行うとのアナウンスがありました。これには会場から大きな拍手が起きました。

1.9.1は来年の1月に最終版をリリースする予定であるそうです。1.9.2についての計画も発表されました。

1.9.2では,Socket部分が新たに書き直されたこと,Timeクラスで古い年代を利用できるようになったこと,BigDecinamlとRationalの相性がよくなったこと,文字コードの指定にUTF-16-BOMが利用できることがあります。 地味な機能向上が多くみえますが,安定したという意味で良いことだと述べていました。 1.9.2は1.9系のGrand Designを示していることに言及し,卜部さんの発表から「Stable as stable API」を引き合いに出して説明しました。

1.9系の未来としては,ユーザ数の問題をあげていました。「1.9.1は1.8.0のように安定です。笑うところです。」(1.8.0はよく落ちたそう)と述べ,ライブラリを1.9系に向けて移植を始めてほしいと語りかけました。また,「1.9.1から1.9.2は結構互換だと思いませんか?少なくともPerl5からPerl6に比べれば互換です」など,yugui節全開な発表でした。

質疑応答は先の卜部さんと同時に行われました。卜部さんに対して「ライブラリ作る際に,1.9相当のAPIを1.8で使いたい」との要望がありました。これについては,具体的に「これがほしい」という要望をデベロッパMLに投げると1.8.8-devに取り込むとの回答でした。 yuguiさんからは,「Rubyは正論の通るコミュニティ。みなさんがRubyを変えられます。不満はパッチに変えてください」と,本開催のテーマである「変える/変わる」にも通じるアドバイスがありました。

画像

画像

okkezさん「Ruby リファレンスマニュアル刷新計画 2009 夏」

Rubyリファレンスマニュアル作成プロジェクト「るりま」について,okkezさんが発表されました。WebページはるりまWikiです。

るりまは,貧弱だったRubyのドキュメントを拡充させる目的で立ち上げられました。 ソースを読んだり,RDocの英語版を翻訳してドキュメントを作成しているそうです。 現在は第3段階の,組込ライブラリ,標準添付ライブラリのメソッドをすべて記述することを目標に活動しています。

ただ,現在は新しいライブラリの開発速度が執筆速度を上回っており,追いつかない状況だそうです。この現状をクリアにするため,RubyKaigi2009の初日に企画部屋で,るりまの会議を開き,るりまのライセンスや今後のリリースについて話し合いが行われたことが説明されました。

みなさんに参加していただきたいこととして,MLに参加したり,Ruby Issue Tracking Systemにある,るりまのissue trackerに参加し,るりまを使うなかで足りないものをbugとして入れてほしいとのことでした。また,レビューやリファレンスに参加する人も募集しているとのこと。

画像

最後にるりまの青木さんも登壇し,書籍執筆のためにあまり活動できなかったことを謝り,本計画の第3段階で約2年間もかけていることについて言及し,「今年の12月でけりをつけます!」と宣言してくれました。

画像

ささだこういちさん「Rubyist Magazine が出来るまで」

日本Rubyの会の有志により執筆されているWeb雑誌Rubyist Magazine - るびまの紹介です。発表者は,提案者のひとりであり,編集者でもあるささださんです。

るびまのきっかけは,Rubyのドキュメント不足もあり,「日本Rubyの会」の発足にあわせてなにか活動をしようとなり始まったそうです(最近は,るりまや多くの書籍,Railsの台頭などがあり,とりまく状況が変わってきていると述べていました)。

るびまの編集には,QuickMLというMLを使い,記事ごとにMLを作成して著者と編集者がやりとりしていると説明しました。また,HikiというWikiシステムで,編集用Wikiと本番用Wikiを使い分けているそうです。 このほか,るびまには詳細な編集規則があることも明かしてくれました。

そして,最新号は26号で,特別号を3回発行しているため,全部で29回発行されていることと,号の平均では記事数は12本,合計で366本の記事を掲載したことを説明しました。

記事の中には,著名なRubyistへのインタビューがあり,そうそうたるメンバーが並んでいます。まつもとさんの「Rubyist のための他言語探訪」という連載は14回を数える長寿連載になっています。 会場では,ささださんからまつもとさんに向けて,連載の依頼をされていました:-)

最後に,ささださんは継続が大事だと繰り返し,「こんなにすごいことを続けてこれた,ナイスな人々に,海よりも深い感謝を」と締めくくりました。

画像

画像

Jeremy Evansさん「Sequel: SQL in Ruby」

Sequelは,Rubyからデータベースへ「Rubyっぽく」アクセスするためのライブラリです。

Jeremyさんは始めに,「ruby-dbi」「ActiveRecord」「Sequel」と順番に並べ,Rubyとデータベースアクセスの歴史を紹介しました。古くは,データベースの実装ごとにドライバがあり,ユーザはその都度使い分ける必要がありました。次の時代では,RDBMSは抽象化され,ひとつのRubyコードが複数のRDBMSに対して動くようになりました。そしてSequelが登場し,さらに便利にデータベースを操作できるようになった,と述べました。

Sequelでは,メソッドチェーンでクエリを書きます。「.select(選択)」して「.filter(フィルタ)」して「.order(並べ替え)」する,といった処理を直感的に記述できます。「SQLは好きですか。SQLをそのまま書いて渡すこともできますが,簡単な処理なら,Sequelで書く方がずっとシンプルです」と,実例を提示しながら説明しました。

また,ActiveRecordのように,モデルと関連付けることもできます。モデル間のリレーションも記述できます。ただしこのとき,データに振る舞いをもとめるか,ただデータがほしいだけなのかを考え,「データがあればいいのなら,staticに使えばよい」と言及しました。

最後に,Sequelの特長を「高速」「省メモリ」「高速Eager Loading」「マルチスレッドでも高性能」「よくメンテされている」をまとめ,特にメンテナンスに関しては「バグレポートへの平均反応時間は2時間です」と語り,積極的な開発の姿勢をアピールしました。

画像

Aaron Quintさん「Sinatra: The Framework Within」

「Sinatraは,驚くほどシンプルなインターフェイスを持ったWebアプリケーションフレームワークです。プロジェクトのページをご覧いただければ,どれほどシンプルかすぐに分かるでしょう。」

…と紹介できると思いますが,スピーカーのAaronさんは「Sinatraはフレームワークではない。MVCでもない。ただひとつの『パーツ』である」と彼の意見を述べ,Sinatraの開発者たちとよく議論していると語りました。

では,フレームワークではないとしたら,Sinatraは何なのでしょうか。Aaronさんの答えは「RoutingのDSLである」というものでした。RailsとSinatra,双方に触れたことのある開発者の方ならば,この回答の意味が伝わるかと思います。

発表の後半には,Sinatraのアドバンテージが活きる具体的なシーンや,これまでの成果物の紹介,他のツールとの組み合わせ方,実際にブラウザを操作するデモがあり,Sinatraの魅力を十二分に伝えてくれました。

「まずコードありき,次に,Sinatraを使おう」「HTTPが言語だとしたら,SinatraはHTTPのスピーカーだ。君はHTTPを話せるかい?」「The power of localhost」などなど,発表全体を通じて,Sinatraを使うためにドキュメントを読むだけでは得られない思想の話が多かったように思います。Sinatraが大好きな筆者としては,鳥肌の立った両腕でこの文章を書くこととなりました!

Michael Fellingerさん,Tadahiko Ueharaさん「The innate beauty of Ramaze」

「発表のシステムに問題が発生して…」と,エディタの画面を写しながら始まった,MichaelさんとUeharaさん,2人の発表です。ここで逆に会場が盛り上がるのは,開発者の多いコミュニティならではですね。

まずはUeharaさんから,Ramazeの簡単な紹介がありました。RamazeはMottoに「極力シンプルに」「必要なものだけ」「MINASWAN」「モジュール型デザイン」「最小限の依存関係」「オープンな開発」「完全なテスト駆動」を掲げており,導入の閾値がとても低いことを説明しました。発表中は,実際のコードを動かしながらRamezeを紹介しました。

「Michaelには日本人の奥さんがいて,日本に住んでいるので,Ramazeに対する要望があったら直接伝えられます!日本のRamazeコミュニティを盛り上げていきましょう」という言葉でUeharaさんの担当分は締めくくられました。

そして,いよいよRamaza開発者のMichaelさんの登場です。去年はRejectKaigiで発表されたMichaelさん。今年は一般発表の枠でたっぷり話してくれました。

Ramazeの大きな特長は「Rubyらしく直感的に書けること」として,RamazeアプリケーションのURLマッピングを例に説明しました。パス「/calculator/multiply/1/2」にアクセスすると,「Calculator」クラスの「multiply」メソッドに引数として「1」「2」が渡って実行される例では,閲覧者からも「分かりやすい!」と嬉しい反応がありました。

後半のライブコーディング中には,アプリケーションが思うように動作しなくて「誰か助けて!」と声を上げる場面もありました。しかしすぐに,Sinatraのセッションを行ったAaronさんからの助言で無事に動くようになり,微笑ましい一場面となりました。

会場からの「どうして自分のテンプレート言語を作ったの?」という質問には「タイプしやすい(打ちやすい)から。Shiftキーを押すのは面倒」と冗談交じりに答えながら,すぐに「当時はERBがとても遅かったので」と,真面目にフォローしていました。

著者プロフィール

大和田純(おおわだじゅん)

ハンドルネームはjune29。RubyKaigi2009当日スタッフ(KaigiFreaks)。

ディスカバリーエンジン「デクワス」を開発・運用中のサイジニア株式会社勤務のWebクリエイタ。北海道出身。技術が人々の生活をどのように豊かにしていくかを考えるのが楽しくて,新しいものはどんどん日常に取り入れてみる。好きな言語はRuby。尊敬する漫画家は荒木飛呂彦先生,好きな擬音語は「メギャン」。

URLhttp://june29.jp/


白土慧(しらつちけい)

ハンドルネームはkei-s。RubyKaigi2009当日スタッフ(KaigiFreaks)。

ディスカバリーエンジン「デクワス」を開発・運用中のサイジニア株式会社勤務のWebエンジニア。札幌市出身。大学時代にWebと複雑ネットワークの楽しさを知る。人と情報のつながりを考えるのが好き。好きな言語はJavaScriptとRuby。好きな小説家は舞城王太郎。

URLhttp://d.hatena.ne.jp/kei-shttp://friendfeed.com/keis

コメント

コメントの記入