«前の日記(2010-08-24 (火)) 最新 次の日記(2010-08-28 (土))»  

まちゅダイアリー


2010-08-27 (金)

日本RubyKaigi2010 1日目

日本RubyKaigi2010に来ている。 2006, 2007 と参加していらいだから、3年ぶりの参加になる。 朝の10時半に家を出たんだけど、首都高速の中央環状線が混んでいたため、会場に着いたのは13時くらいだった。 小菅JCTを過ぎた後はつくばまで順調に1時間くらいだったんだけどなぁ。平日だと思って油断してた。

ということで、初日の基調講演から参加。 セッションの内容は gihyo.jp さんのRubyKaigi2010スペシャルレポートが詳しいので、僕は印象に残ったところのみ。

Conflicts and Resolutions in Ruby and Rails

初日の基調講演がキャンセルになったとアナウンスされていたのでどうなるんだろうと思っていたけど、代わりに Rails コアメンバの Yahuda Katz さんと tenderlove による対談、しかも質問者がWEB+DB PRESSでRails3の記事を書いた松田さん、翻訳がまつもとさんという、豪華なセッションになっていた。 タイトルどおり、Ruby と Rails の文化の違い、 Ruby1.8 と 1.9 あるいは Rails 2.0 と 3.0 の互換性、日本と英語圏の言葉の壁といった、「違い」に焦点を当てた質問が続く。 特に興味深かったのは「エンコーディング」と「言葉の壁」についての話。

Ruby のエンコーディングは、プログラマがエンコーディングを意識する必要がある。 日本語圏のプログラマは昔から文字エンコーディングに苦労しているけど、国際化対応のアプリを作るためには英語圏のプログラマも(なんでもUTF-8で書くだけではなく)エンコーディングを考慮することが必要。Ruby1.9はプログラマを育てる土壌になっているんじゃないか。

もう一つの言葉の壁は、Rubyには英語と日本語のMLが存在し、議論が分断されている。 例えば英語圏の人がパッチを書いたとして、それが日本語MLで議論されてパッチがリジェクトされたとき。 パッチを書いた人が検討のプロセスに参加できないのは辛いとの指摘だった。 それに対して「お互いにお互いの言葉を勉強しましょう」との話に繋がっていた。

会場からは(ツイッターで)「日本語圏の人も英語圏の議論に対して同じような思いを感じていることを感じて欲しい」「英語と日本語の議論が分断されていることよりも、英語と日本語の両方ができないと議論に参加できなくなることのほうが怖い」という指摘もあり、根が深い問題だと感じた。

Feels Like Ruby

JavaScriptでのテストフレームワーク jasmin の紹介。 JavaScript でも RSpec のようにテストが書けるのが特徴。 gem でインストール可能。

describe("Jasmine", function() {
  it("makes testing JavaScript awesome!", function() {
    expect(yourCode).toBeLotsBetter();
  });
});

Ruby/Rails と JavaScript で開発している人には、同じようにテストを書けるのは魅力的だと思う。これから流行るかも。

User Experience for Library Designers

よいライブラリを書くには。 ただし技術的な書き方の話ではなく、コミュニティ・ユーザとの関わり方についての話だった。 印象に残ったのは、「社会人になったときにライブラリのエキスパートになる」ことを決めたというエピソード。 こうやって自分の得意分野・キャリアパスを明確に決めるのは重要だよなぁ。

お昼を食べていなかったので、ここでちょっとお昼休憩。

Head First ふつうのシステム開発

永和システムマネジメントさんが、普段どのようにアジャイル開発しているかを、目の前で実演するセッション。 「アジャイルとは何か」をプレゼン資料で語るのではなく、実際に動いているところで見せるのが、実にアジャイル的だなぁ。

題材は、実際に永和さんがお昼休みに自主的に開発している社内向けの情報公開プロダクトに機能拡張するというもの。 オーナーが要求を出し、リーダーが調整し、開発者がペアプロで作っていくという流れ。 できあがったものをオーナーに見せ、承認されると done.

会場のネットワークが少し繋がるようになってきたので、僕も感想をリアルタイムで Twitter に投稿した。 具体的な流れや感想は、そちらを参照。

セッションは立ち見(体育座り見)、質問も活発にでるほどの大盛況だった。 やっぱり、「動いているところを見せる」というのは、いちばん分かりやすいね。

僕のお仕事では、基本的にウォーターフォールにどっぷりなんだけど、もうすべてが真逆。 今回のは特にアジャイル向けな題材だったとは思うけど、この開発スピードと真っ向から勝負したら勝てないよなぁ。 (逆にウォーターフォールに取り込まれたら、 @ursm さんの vim 力や @hsbt さんの Web日記力などが、ほとんどスポイルされてしまう)

君のクラスの最高の偽物

Ruby はオープンクラスで、 String や Array を誰でも簡単に拡張できる。 これは便利な一方で、影響範囲が大きすぎる(「大きな力には大きな責任が伴う」)問題もある。 オープンクラスの拡張を、特定のモジュール内に閉じるための方法 (classbox) とその実装についてのセッションだった。

実装についてはついて行けなかったけど、この機能は欲しいなぁ。

コミュニティ・ナイト

顔見知りの方や、はじめましても方にご挨拶して回った。 とにかく、これほどのイベントを(しかも手作りで)運営していただいているスタッフの皆様には、本当に感謝。 Ruby同様に、おもてなしレベルが半端ない。

明日は tDiary 会議ですよ。

Tags: RubyKaigi