RubyKaigi2011 スペシャルレポート

日本Ruby会議2011 1日目レポート[更新終了]

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

本日7月16日(土)から18日(月)までの3日間にわたり,練馬文化センターにて日本Ruby会議2011(略称:RubyKaigi2011)が開催されます。本ページでは,1日目の模様を随時レポートしていきます。

スタッフの皆さんは朝から集まり,当日準備が行われました。

画像

スタッフの方は,専用のTシャツ,STAFF腕章をつけていますので,もし会場で困ったことなどがあれば相談してみましょう。

画像

オープニング

実行委員長,高橋征義さんの挨拶

本イベントの実行委員長である高橋征義さんからオープニングの挨拶があり,そのなかで「RubyKaigiは2006年から数えて6回目で,集大成かつ一つの区切りとなる最後にして最高の日本Ruby会議を楽しんでいってほしい」と述べました。

画像

笹田耕一さん「日本Ruby会議2011[+α]プログラムについて」

続いて,プログラム委員長である笹田耕一さんから,これまでのRubyKaigiのプログラムと発表傾向,今年のプログラムが紹介されました。選考方法についても説明がありました。

画像

Aaron Pattersonさん「Ruby Ruined My Life.」

画像

初日の最初のセッションはAaron Pattersonさんによる基調講演からスタートしました。被り物を使うことでも有名なAaronさんですが,今日はスーツ姿での登壇でした。

未来のRuby

「コンニチワ」「たこ焼き仮面と申します」と日本語での第一声から始まったAaronさんの発表は,まず手始めに「Rubyの未来」といきなりの切り込み。「PSRuby」と題したその予想は,RubyインタプリタをPostScriptで書けばRubyをプリンタに載せられるため,それによりプリンタの余ったプロセッサを使えるのでは,というもの。実はこれは,まつもとさんが最終日にRubyの未来に語る発表をやる前に言いたいことを言ってしまえ,という本題に入る前の肩慣らしのジャブのようでした。本気かどうか定かではありませんが,2013年夏頃に何かのイベントでこのことについて発表するかも,とのこと。

このジャブに続いてAaronさんが用意したのが「プログラミング道場」という未来予想。柔道着を着たAaronさんともう一人が芝生の上でノートパソコンに向かいながら正座で礼,そのままペアプログラミング,コーディングミスに対する寝技でのお仕置き,といったもので,スライドが切り替わるたびに会場からは笑いの声があがっていました。さらにはムービーまで作る気合の入りようで,楽しいパフォーマンスに本気をかけるいつものAaronさんでした。

Ruby開発とRails開発の比較

会場が温まったところでAaronさんが持ち出したのは,昨年のRubyKaigi2010からの主要トピックであるRubyの開発体制についてでした。昔,Aaronさんが仕事でリポジトリ管理の仕事をしていた頃,ビルドにミスが見つかった時にビルドチームにそれを伝えても「プログラマではないから直せない」と言われ,であれば自分が直すからと話しても「あなたはビルドチームじゃないから」と拒否された悲しい経験を踏まえて,「境界」という言葉を焦点に話をしていくと言及しました。

画像

Rubyコアチームでは

Rubyコアチームの特徴は,標準ライブラリなどで分野ごとに担当がはっきり決まっていることで,利点は各人が分野毎にスペシャリストになれることを挙げました。例えばAaronさんはYAMLライブラリの担当で,YAMLのスペシャリストになればよい,といった具合です。

欠点として,担当者以外が触ることができず,担当者がいないとその間まったく直すことができなくなってしまうことを指摘しました。また,日本語と英語という多言語で開発していることについて,英語がわからない人は日本語でも貢献できるという点が良いが,英語だけ話すメンバーと日本語だけ話すメンバーで境界ができてしまっている,と言います。

もう一つの問題として,Rubyの一部のライブラリが外部にupstreamのリポジトリを持っていることを挙げました。RubyGemsなどに問題があったとき,Rubyコアチームにお願いしてもダメで,外部のRubyGemsチームに頼まないといけないことを例示しました。

さらに,標準ライブラリが一部がgem化されているものと,されていないものがあり,不統一になってしまっている点も問題点として挙げました。

総じて,Ruby開発はみんなが同じチームなのに「境界」が存在してしまっており,Rubyのすべてに対して触れない,貢献できないという点が話されました。

Railsコアチームでは

対してRailsコアチームでは,分野というものは存在しているものの,コミッタであればどこに対してもコミットできる点を強調しました。欠点としては,Railsの各パーツの「オーナー」がいないため,その部分に対して強い意見を持つ人がいない場合があるということでした。Rubyコアチームが各分野にスペシャリストを置く利点と綺麗に真逆というわけです。

また,Railsコアチームメンバーは全員がリリースマネージャであるため,リリースのスピードは早いものの,リリースに誰も責任を持たなくなってしまうのではないか?という懸念も挙げていました。リリース前に最後までトラッキングしている人間がいないため,例えばバグをバックポートすることをよく忘れてしまう,といったことがあるようです。「境界」がない故の欠点であり,Rails側からもRubyコアチームにも見習うべき点があるのではないか,という反省を述べていました。

Rubyコアチームへのメッセージ

Rubyコアチームの開発体制へのヒントとして,RubyコミッタでありリリースマネージャでもあるYuguiさんが1.9.3リリースへ向けてruby-coreへ投げたメール(ruby-dev:44055)から「feel free to commit your patch...」という文を引用し,パッチを自由にコミットせよ,という表現が私はすごく好きだと述べました。Railsがずっとこういう雰囲気だったから,こういう空気がRubyにも欲しいとのことでした。

画像

ただしこの自由さには,"feel free to revert" という却下する自由も存在しています。そこで,必要なことはなぜrevert,というコミュニケーションをする責任であり,それこそがRubyコアチームに持ってもらいたいものではないか,と述べました。そうすれば,英語圏の人たちがよく言う「ruby-devで議論を済ませてからruby-coreにアナウンスするのはずるい」という批判も解消していけるのでは,ということを指摘しました。

標準ライブラリの見直し

別の話として,標準ライブラリの見直しを提案をしました。そもそものきっかけはSeattle.rbでのRyan(zenspider)と標準ライブラリについての雑談で,Aaronさんの「なぜminitestをruby trunkで直接開発しないのか」という問いに,Ryanは「いや,(このminitestは)rubyじゃない。たまたまrubyと同胞した第三者のソフトだよ」と回答を受けたことだと話します。この発言がAaronさんにとっては新鮮な体験だったとのこと。

Aaronさんが言うには,標準ライブラリに必要なのは,つまりgem化だということでした。例えば,net/httpに依存したライブラリを作成していて,そこでRubyをアップデートすると,そのことでnet/httpのAPIが変わってしまえばライブラリが壊れてしまいます。しかし,もしnet/httpがgemであれば,Ruby本体をアップデートしても必要なgemだけをダウングレードして使い続けるといったこともできるようになる,といった利点を挙げました。

Railsプログラマは将来のエキスパート

Aaronさんが日本語を勉強するきっかけはRubyを勉強するためだったそうです。Rubyは日本で生まれた言語というのもあり,日本語でしかないドキュメントや本が多くあることを言及しました。その例として,咳さんの『dRubyによる分散・Webプログラミング』や原さんの『Rubyで作る奇妙なプログラミング言語』などを例に挙げ,日本には特定のトピックに対する本が多いと話します。

アメリカではRubyの入門本や,Rails開発の本が多く,Ruby初心者に対して不親切な状況になっているそうです。偏りの理由として,Rubyはできることがたくさんありすぎて,逆になにをしたらいいのかわからなくなりますが,Railsの本はWebアプリと対象がはっきりしているためとAaronさんは言います。そして,そのような背景からRubyに詳しくないRailsプログラマが生まれてしまうそうです。

とは言え,Web開発が簡単なわけでもなく,Railsの他にもHTML,CSSやHTTP,最近ではCofeeScriptも学ぶ必要があると述べます。ですが,その広い技術のなかから特定の技術について教えてあげれば,その技術のエキスパートになれるとし,Railsプログラマは将来のエキスパートと話しました。

そのためには日本で出版されているような特定のトピックの本があるのが有用とし,アメリカでもそのような本が出版されるとうれしいと述べました。

エンコーディングについて

Aaronさんには文字列のエンコーディングで気になる「仕様」があるそうです。その例としてmysqlのドライバを取り上げ,日本語文字列を取り出すケースを挙げました。日本語文字列をmysqlドライバで取り出すとバイナリ文字列になってしまうため,文字列を連結したときに正しく行なわれないそうです。

エンコーディングの仕様に対してASCII-8BITと他のエンコーディングの文字列を連結した場合には,常に例外を発生させて欲しいと提案していました。

$LOAD_PATHについて

Rubyの$LOAD_PATHについてFile APIを使用したいことも提案しました。そしてrequireの例をあげ,インターネットやSQLiteのデータベースからプログラムが読み込めたらすごいと述べていました。

DTrace対応

以前RubyにDTraceを入れるという話がありましたが,最終的には対応されなかったことについても話がありました。AaronさんはArray Allocationなどの例を挙げながら,DTraceが有用であると言います。DTraceをRubyに入れることはいくつか制限や課題があるとしながらも,対応すべきだと言及しました。

Rubyで人生破滅?

最後に,セッションタイトルである「Ruby Ruined My Life」に触れました。AaronさんはRubyをやる前に元々PerlとJavaを使っていて,Perl6を待望していたとのこと。その頃,上司から「Javaをもっと学ばないと別の仕事を探してもらうことになる」と言われたものの,Javaが嫌いであまりやる気がなかったそうです。そのような時にRubyを見つけたAaronさんは,昼間はひどいJavaを使って,夜だけ美しいRubyを使う生活になったと語ります。Rubyを仕事で使えたらいいのに!と苦しむ羽目になったわけです。

そこで転職を決意し,40%の減給を受け入れてRubyを使うスタートアップに移り,「人生がハッピーになった! “No Ruby, No Lifeである。そしてNo RubyKaigi, No Lifeである」と述べ,発表を締めました。

"婚活"Kaigi

発表後,突如サイドスクリーンの翻訳用IRCに「以降は翻訳をしないで」という指示が出され,Carl Lercheさん(Yehuda KatzさんとコンビでcarlhudaとしてBundler,Merb等を作り活躍した)とそのガールフレンドのTiffanieさんが壇上に呼ばれました。

これはAaronさんからのサプライズで,CarlさんにはCarlさんの誕生日を理由に壇上に登ってもらい,実はTiffanieさんが壇上でプロポーズするというものでした。Carlさんは壇上での突然のプロポーズに少し混乱した様子を見せつつも,めでたく「yes」の返事。Carlさんだけでなく会場に集まったRubyistたちにとってもサプライズな一場面でした。

画像

著者プロフィール

KaigiFreaks レポート班

KaigiFreaksとは,会場に来れなかった人にも,雰囲気や内容を楽しんでもらえるように動画収録や配信を行うことをミッションに,RubyKaigi2008で結成された特別編成チーム。

RubyKaigi2009からはgihyo.jpを中心にテキストと写真で現場の様子を伝えるレポート班が加わり,現在のKaigiFreaksは配信班とレポート班の2班編成。


三村益隆(みむらみつたか)

(株)永和システムマネジメントサービスプロバイディング事業部所属。Asakusa.rb & Rails勉強会@tokyo。このところRailsのお仕事をしています。言語好き。

blog:http://d.hatena.ne.jp/takkan_m
twitter:http://twitter.com/takkanm


すがわらまさのり

ハンドルネームはsugamasao。

Mitaka.rb や 若手IT勉強会に参加しています。仕事では自社プロダクトのデーモンの開発あたりでRubyを使ったりしています。伊坂幸太郎さんと荒木飛呂彦さんが好きです。

blog:http://d.hatena.ne.jp/seiunsky/
twitter:https://twitter.com/sugamasao


小松崎典之(こまつざきのりゆき)

ハンドルネームはO-Show。

RubyKaigi2010に参加したことで触発されRubyistを自称するようになる。ブログでRubyやGit関連記事の翻訳をあげています。もっとRubyとGitの情報の流通増えろ!と願ってやまない。

blog:http://keijinsonyaban.blogspot.com/
twitter:http://twitter.com/oshow


菅井祐太朗(すがいゆうたろう)

仕事でも Ruby を使えたらいいなぁと考えている新社会人LOCAL 所属。この春からAsakusa.rbにjoin。

twitter:http://twitter.com/hokkai7go


赤松祐希(あかまつゆうき)

2010年よりRuby on RailsでのWebアプリケーションの開発を中心にフリーランスのRubyプログラマとして活動中。最近はHaskellに興味を持ち出し、勉強しはじめている。

blog:http://ukstudio.jp/
twitter:http://twitter.com/ukstudio

コメント

  • Seven Languages in Seven Weeks

    の監訳じゃないの?まつもとさん。
    ホントに執筆してたんだったらぼくの勘違いなのでゴメン。

    Commented : #1  maru (2011/07/17, 00:09)

コメントの記入