本日8月27日(金)から29日(日)までの3日間にわたり,茨城県つくば市のつくば国際会議場にて日本Ruby会議2010が開催されます。本ページでは,1日目の模様を随時レポートしていきます。
会場入り口から受付場所まで動画で撮影しました。今回は2Fで受付が行われます。その隣のスペースには,ジュンク堂RubyKaigi店が出店しています。
RubyKaigi開催前にはコミッター関係者が集まり,Ruby開発者会議が行われました。今後のRubyについて議論が交わされていました。
なお,スタッフは,以下の本イベント用のTシャツを着用しています。困ったことがあれば話しかけてみましょう。気さくに答えてくれるはずです。
オープニング
実行委員長の高橋征義さんから,今回のRubyKaigiのテーマ「Conflicts and Resolutions(衝突と解決)」について説明が行われました。その後,スポンサーが紹介され,最後に「イベントを楽しんでほしい」と参加者全員に呼びかけました。
Akira Matsudaさん Masayoshi Takahashiさん Matzさん Yehuda Katzさん tenderloveさん Leonald Chinさん「Conflicts and Resolutions in Ruby and Rails」
本来Jeremyさんによる基調講演の予定でしたが,急遽予定を変更しての講演となりました。実は今回のRubyKaigi2010のテーマはJeremyさんのRubyWorld Conferenceでの講演にちなんでいます。その時の講演の内容は「Rails3をどのように作っているか」「RubyとRailsのコミュニティでもっと仲良くしよう」という話で,それに感銘を受けたので基調講演に招待することになったそうです。
明日28日にはRubyコミッタQ&AやMatzさんの基調講演などRubyの話が中心になることが予想されたので,Railsのことを中心に話すと冒頭で説明がありました。会期中はRailsのコアチームのメンバーが何人か訪れており,その中からYahuda Katzさんとtenderloveさんにお願いして登壇していただくことになりました。
他にも日本のRailsエンジニアの第一人者のMatsudaさんにも登壇してもらい,日本Rubyの会会長のTakahashiさん,Ruby生みの親のMatzさん,Leonald Chinさんと豪華な顔ぶれとなるセッションになりました。MatsudaさんがYahuda Katzさんとtenderloveさんに質問をし,Takahashiさんが司会,MatzさんとLeonald Chinさんが翻訳というQ&Aにも似た形で進行しました。
Rails3について
Rails3.0がリリース間近と言うこともあり,話題の多くはRails3.0についてでした。Railsチームは互換性を気にしており,Rails3では古いAPIも新しいAPIも両方使える「Rails2の上位互換」にあたると説明されていました。また,ActionMailerやActionControllerなど,多くのコアの部分が書き換えられRailsから独立して使えるようになったとのことです。しかし,ActiveRecordやActiveRelationについてはまだ満足できてはいないそうです。とは言え,現在作業中とのことなので今後に期待できそうです。
RailsがMerbと統合すると発表した当時目指していたものと,現在を比較した点については「よくやれてたと思う,期待通りだった」と頼もしい発言をされていました。
Rails3とRuby1.9
Rails3ではRuby1.8とRuby1.9をサポートしていますが,1.9をサポートする上で良いところと悪いところは?の質問に対し,「1.9は1.8と両方で動くコードがかける」と述べ,「Python3と違って」などとジョークも交え,会場は笑いに包まれました。しかし,たくさんのメソッドが文字列ではなくシンボルを返すことを例とし「内容は正しいが,このような大きな変更はもっと慎重に行ってほしかった」とも言っていました。
Ruby1.9の文字エンコーディングについても言及し,悪いところを「文字エンコーディングに考える必要ができた」と述べ,良いところについては「正しく文字エンコーディング」ができると述べていました。Yahuda Katzさんは控えめに話していましたが,tenderloveさんによるとRuby1.9サポートで文字エンコーディングまわりはとても大変な作業だったようです。
継続的インテグレーション
Ruby1.9に関する質問の回答の中で継続的インテグレーションについても言及され,RailsではリポジトリのTrunkに対していつもテストを行っているそうです。その結果,Ruby1.9と近い時期にRails3もリリースできるし,Rails,Ruby共にたくさんのバグを見つけることができたそうです。
熱意があればコミッタになれる
tenderloveさんはRubyのコミッタでもあり,Railsのコミッタでもあるという特殊な立場の方ですが,コミッタになった経緯については「たくさんのパッチを送ったらメンテナがコミット権をくれた」と話をしていました。横にいたYahuda Katzさんは「Railsチームは何ヶ月か継続的にパッチを送っていればコミット権を与える」とも言っていました。また,テストがないパッチは採用されにくいとも話し,改めてRailsチームのテストへの意識の高さが伺えます。
RubyチームとRailsチームの良いところ悪いところ
tenderloveさんはRubyチームとRailsチームを比較して,Rubyはコードの責任範囲が狹い傾向にあるとのことでした。例えば,GC.cをtenderloveさんが書き換えることは難しいが,Railsでは自分が書きたいところを書けるそうです。
また,Rubyには日本語と英語のMLがそれぞれ存在することにも言及し,これらがコミニュケーションを阻害していることを心配していました。お互いに言語を学び,自信がなくとも積極的にコミニュケートすることが大事だそうです。tenderloveさんは日本語を少し話すことができ,横にいるYahuda Katzさんに対し「日本語ならったほうがいいです」と片言ながら日本語で話しかけ会場の笑いを誘っていました。
最後に
「最後にいい残したことは?」と聞かれ,Yahuda Katzさんは改めてRuby1.9の後方互換性の素晴しさを強調し,Ruby1.9.3やRuby2.0でも互換性を大事にして欲しいと話されていました。tenderloveさんはアメリカの開発陣にとって言語の違いが最大の壁とし,お互いの言語を学び,積極的にコミニュケートをすれば,お互いにたくさんのことを学べると話されていました。

