RubyKaigi2009 スペシャルレポート

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

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

前田修吾さん「Re-introduction to Ruby」

発表された前田修吾さんは,Rubyアソシエーション副理事長であり,まつもとさんの所属する株式会社ネットワーク応用通信研究所(NaCl)の取締役でもあります。 まずは,松江で行われるRubyWorld Conferenceを紹介しました。⁠RubyKaigiに比べると,スーツの多いイベント」と述べていましたが,豪華なメンバーによる講演が予定されています。

前田さんの発表は「Re-introduction to Ruby」と題して,これまでのRubyの言語仕様について変遷を辿りました。

Rubyの特徴として,メソッド呼び出しで括弧が省略可能なことがあります。 実はRuby 0.49までは括弧が必要で,括弧無しのメソッド呼び出しは1994年8月26日に導入されました。これはPerl 5のリリースより速い導入だそうです。

括弧無しのメソッド呼び出しの利点として,書きやすさ,読みやすさ,拡張性があることを挙げました。たとえばincludeはメソッドですが,ユーザはincludeがメソッドとして実装されていることを意識しないなど,Rubyは構文を重視しています。 しかし欠点として,文法が複雑化したと述べました。プログラムはシンプルに見えますが,文法自体は複雑で,構文解析が大変です。 まつもとさんが世界と人間の精神が複雑だからRubyが複雑なんだ。そうに違いない。と述べたことを引用しました。

昔のRubyではSpecがあったことや,!や!=がメソッド呼び出しであったことを挙げました。!や!=は1.9でメソッド呼び出しになりました。また,まつもとさんがエラー処理のrescueをresqueとtypoしたバージョンを実際に実行しました。 そして,Rubyは「変わり続ける言語」であると述べました。

Ruby 1.8の問題点をあげ,暗黙的なレキシカルスコープと多重代入について説明しました。 問題の起こる具体的なコードを挙げ,プログラマの予想と異なる挙動を示す例をいくつも見せました。 1.9での変更として,ブロックパラメータのスコープや,ブロックローカル変数の宣言,メソッドパラメータの一貫性を挙げました。 しかし,1.9でも未解決な問題として,暗黙的なレキシカルスコープを取り上げ,解決策を提案しました。ひとつは,マジックコメントによって動作を制御する方法,もうひとつはlet宣言の導入です。 このパッチは,http://shugo.net/RubyKaigi/2009/no-implicit-lexical-scope.diffにあります。

まとめとして,まつもとさんだけがRubyを変えることができないわけではなく,Rubyは「変わる」言語であり,Rubyを「変える」ことができると述べました。

画像

画像

角谷信太郎さん「Take the Red Pill」

運営委員長・角谷さんの,本日2つ目となる発表は「赤いピルを飲め」⁠赤いピルとは,映画「マトリックス」に登場したものです。

この発表は,とてもメッセージ色が強いものだったので,角谷さんの言葉をなるべくそのまま皆さんに伝えたいと思います。

「赤いピルを飲め」

「この発表は,初日の江渡さんのLightning Talksの続きです」

「Ward、Kent、それから、キレイなコード、うまく整理されたオブジェクト指向設計、そして、テストしやすさについて提唱してきたすべての人たちの価値が、そこに受け継がれていたのだ。これらの考えは、他の多くの技術コミュニティにとっても大きなインパクトだったはずだが、Ruby界ではそれが『正統』になっている」Martin Fowler's Bliki in Japanese - RailsConf2007からの引用)

「ではなぜ,こういった考え方が正統になっているのかというと,これは当たり前なんです。当然です」

「はい,ここから電波です」

電波─⁠─⁠言葉を発している本人にだけは確信があるが,客観的証拠に欠く発言」⁠周囲に満ち満ちているが目に見えないもの」

「2つ目の意味,周囲に満ちているもの。皆さん何か分かりますか。"The Matrix"ですよ。目には見えないけれど,いつもある」

「そして迫られるわけです。青いピルを飲むか。赤いピルを飲むか。青いピルを飲めば何もかも今まで通り。赤いピルを選んだ人がここにいますね。Welcome to the real world」

「躊躇なく赤いピルを飲めばよい。大丈夫です。我々にはたのしいRubyとナイスな人びととのつながりがある」

「ただ,たのしいRubyとナイスな人びととのつながりはとても自由なものだが無料ではない。どうすれば?」

「Don't Think, Feel」

「月を指さすときには考えてはいけない。感じるんだ。指先に集中していると,向こうが見えなくなってしまう」

「ここでいう指とは何か。Rubyです。その向こうにあるのは何か。いきいきとした世界があります。月のように美しい世界です」

「ソフトウェアづくりに携わる者にとってのいきいきとした世界」

「それは,つくる人が技術的卓越を追求できる,つかう人の欲しかったものが実現される,そんな世界。お互いが同じ目標に貢献することで達成される」

「この考え方は,Christopher Alexanderという建築家の人がルーツになっていて,⁠時を超えた建設の道』という本が出ています」

「本の中で,いきいきとした世界は『無名の質(名づけえぬ質)⁠と呼ばれています。英語では"Quality Without A Name"(QWAN)」

無名の質

「なんかいい感じ」⁠上手く言えないけどいい感じ」

「なんかいいよね,というのを,なんでいいのだろう,と30年くらい研究しているのがChristoper Alexanderです」

「彼の目的意識は『何百年にもわたって育まれてきた,いきいきとした建物や町を現代の建築家が生成できるようにするにはどうすればいいだろうか』というもの。たとえば,VeniceとかAmsterdamとか,なんかいいじゃないですか」

「⁠なんかいい感じ』を実現したい」

「一度,冒頭の『正統』の話に戻ります」

「ソフトウェアづくりをする者たちにとっての,いきいきとした世界を作りたい。これについてまとめられた本が『パターン、Wiki、XP』です。翻訳ではなく,この本が日本から登場したのは素晴らしいことだと思います」

Rubyが備える無名の質

「さて,Rubyの話をします」

「Rubyは,無名の質を備えたプログラミング言語です。なぜなら,Rubyがなぜよいのか,誰もきちんと説明できないからです」

「Rubyはプログラミングを楽しくする言語です」⁠まつもとさんの著書『オブジェクト指向スクリプト言語Ruby』からの引用)

「Rubyをキメると気持ちイイ。説明できていない」⁠RubyKaigi2008の基調講演でまつもとさんが言った言葉)

「Rubyのすごいところは,言語の特徴を『たのしい』と言い切ってしまったこと」⁠とちぎRuby会議01での,原信一郎さんの言葉)

「Ruby発祥の地の日本で,最も広く読まれているであろうRubyの入門書が『たのしいRuby』⁠

「私たちの楽しさをもっと分かちあうことはできないだろうか」

「自分が語れそうなところ,と考えると,対象はRubyKaigiです」

RubyKaigiの無名の質

「QWAN on RubyKaigiはなんだろう」

「RubyKaigiは2回目の2007から"Matz is nice, so we're nice."というスローガンを掲げています。みんなが気に入っているので,取り下げずに今日まできています」

「RubyKaigiにおける無名の質を,皆さんは既に知っています」

「たとえば廊下の給電所。ホールの前。ホワイトボード。カラフルなポストイットに意見を書いて貼っていく。特別なことをしているわけではありません。だけどなんかいい感じ」

「会場に設置しておいた"WHERE ARE YOU FROM?"の地図をみると,世界中から人が集まっているのが分かる。なんか面白そうだから,といって人が集まってくる」

「RubyKaigiは自分たちのペースでRubyコミュニティ全体とつながろうとしてきた。最初からそう考えて行動していたわけではないけれど,振り返ってみるとそうなっている」

「ちょうど,最初のRubyKaigiが始まる直前くらいに白いMacBookを買った。そこにサインを書いてもらう習慣を2008年まで持っていた。今はMacBookProに変えてしまったけれど,MacBookは蓋だけ外して今も所持しています」

「RubyKaigi2006。最初のRubyKaigi。David H.Hanssonが,ボクたちをマトリックスから解放するためにやってきてくれました。そのときに書いてもらった言葉は"Write Less Software"。この言葉はとても重い」

「RubyKaigi2007。Dave Thomasがきてくれました。彼には"Code Ruby Be Happy"というお言葉をいただいたので,肝に銘じてやっています。また,これとは別に,2つの宿題をもらっていました」

「1つ目の宿題は『自分たちだけで楽しむのではなく,新しくやってくる人たちと仲良くしなさい』というもの。2つ目は『RubyはRubyになれ』でした。これらの宿題をときどき思い出しながら,感極まったりしています。このときのもらった言葉は,あとで紹介します」

「RubyKaigi2008。Chad FowlerとRich Kilmerという,RubyConfをやっている人たちが,ついにRubyKaigiにきてくれました」

Take the Red Pill

「RubyKaigiで実現できている無名の質。どうやったら分かち合えるだろう。もう1回,言いましょう」

「Don't Think, Feel」

「Rubyを使っていきいきとした世界を指す。つくる人とつかう人が一緒になって楽しくなっていくような在り方,というのをどうやって作っていけるか考える。答えはどこにあるのか」

「RubyKaigi2008のときにRichに書いてもらった言葉"Know Ruby Know Life"。Rubyが分かれば人の営みが分かる」

「たのしいRuby。Rubyがあればボクらは大丈夫です」

「Take the Red Pill」

高橋征義さん「基調講演: Rubyと私、そして日本Rubyの会」

日本Rubyの会会長の高橋さんの基調講演です。袴姿で登場しました。まず,今回のテーマは「変える/変わる」について話がありました。

毎年のRubyKaigiのテーマは,高橋さんが決めているそうです。前回のテーマは「多様性」でした。Ruby処理系がたくさんあり,使われ方も多様になってきました。また,Rubyistにも沢山の違いがあります。これを受けて,単に多様であることはバラバラであることで,なにかしらを変えていかなければいけないと考え,⁠私たちはどう変わるべきなのか」という考えから,今回のテーマを決めたとのこと。

高橋さんのRubyの出会いは1997年のRuby 1.1で,当時のRubyはバイナリ配布はなく,当然自分でコンパイルして使っていたそうです。この頃,リファレンスマニュアルはありましたが,最終的にはソースを読んで理解したとのこと。RubyのMLに初めてメールをしたのが1998年1月20日で(ruby-list:5905)⁠コミッタではなく,パッチを書いたこともほとんどないの述べました。

「開発」には携わっていない,単なる一般ユーザでしたした。一般ユーザでもRubyに貢献しようと思い書籍の執筆を行い,「たのしいRuby」がRuby入門書の定番となったことや,コミュニティやイベントの開催を行い,日本Rubyの会のいいだしっぺとして会長になったことを自身の変化として言及しました。

Ruby自身の変化

続いて,ユーザ視点でのRubyの変化が語られました。

宇多田ヒカルの歌詞から「みんなの願いは同時には叶わない」と引用し,何かを捨てなければ変われないのではないか,捨て去る変化を受け入れることが必要なのではないかと考えていると,述べました。

そんななかで,Rubyの経緯を振り返ると,Rubyにも様々な変化や,様々なあきらめ(具体的には様々なライブラリの取り込みなど)があったことを指摘しました。そして,具体的に振り返りました。

  • 昔のRubyはまつもとさん一人による開発でした。これには問題点が二つあり,一点目は,まつもとさんがよく知らない,興味がないものなどは実装されないということです。二点目は,まつもとさんが書ける速度でしか書けないということです。プログラミング言語には,規格やライブラリの世の中の流行を追わなければなりませんが,一人では追いつけません。その後,コミッタが増加し,みんなでメンテナンスをすることで得たものもありますが,統一性がなくなったり,対応が遅くなってしまったりする問題も発生しました。
  • Ruby1.6の時代には,海外進出の本格化があり,DaveとAndyによって書かれたProgramming Rubyの出版があり海外でも知られるようになりました。この動きが,Railsが生まれる下地になったのではないかと考えます。しかし,この時代に失ったものにはコミュニティの分裂があります。異なる自然言語やコミュニティの細分化によるものです(本日,ドイツのDanielさんからコミュニティについての発表があり,日本の情報が入ってこないと嘆いていました)⁠
  • Ruby1.8の時代にはRailsの登場もあり一般に普及しました。しかし,この時代でも,要求水準の高度化や重い開発プロセスなどがあり,批判の声が大きくなりました。使いたい人よりも強制的に使わせられる人が増え,文句も増えました。Rails文化とRuby文化の分断や様々な喪失がありました。

しかし,変わらない方が良いのかと問われればNoと答えると述べました。喪失を恐れず,それを越える収穫を得るため,変化を選別する必要があると言及しました。

日本Rubyの会について

そして,Ruby開発のコントロールではなく,傍観者的立場から,私が変えられるものとして,日本Rubyの会であることに話が振られました。

日本Rubyの会の現状ですが,いろいろなことを行っていることが語られました。日本Ruby会議の主催や地域Ruby会議の支援,るびまの発行,るりまの作成や,地域コミュニティのハブとしての活動などです。

ただし,問題点は山積みであると言及し,日本Rubyの会の中での活動を多様化できていない,自由に行えていないことがあると述べました。また,各プロジェクトも,動いてはいますが手が止まりがちで,思い切った改革ができず,情報公開できていないとのこと。

これらのボトルネックになっているのは「私」である,私の限界がRubyの会の限界になっている,と理由付けしました。Rubyの会の構造がRubyと同じ「優しい独裁者制」であり,これが足かせになっている現状があると述べました。

解決策は,ぜんぜん未定とのこと。非公式な場で具体的な施策を検討しているが決定的なものはないそうです。考えられることとして,ひとつは,権限の委譲があると指摘しました。しかし,Rubyの開発スタイルを踏襲し,会長の集団をつくっても,あまり嬉しくないと予想しているとのこと。また,プロジェクトごとの代表を立ててはどうかと考えたが,これだけではあまり変わらないとも思うと語られました。

さらにシステムを変える支援として,MLを捨て,redmineなどのプロジェクト管理システムの導入も考えたそうですが,redmineにすれば全部解決するわけもないと述べました。それよりも,関心あるプロジェクトに属し,属する会員がメンバーとなり,プロジェクトを動かしてほしいとのこと。

現状の最大の課題は,私を捨てられる形をつくることといい,⁠トラックナンバー += 1」をしなければならないと言及しました。そして,⁠私の知らない世代が,私がさほど面白いとも思わないようなことを喜々としてやってほしい,それが私が思うたのしい未来です。」と述べました。

まとめとして,⁠変化には喪失がつきものです。喪失を超える良いものをつくりあげていきたい,Rubyの会も,そのように変わっていきたいと考えています」と結びました。

画像

画像

クロージング

再度,高橋さんが登壇され,閉幕の言葉が述べられました。

三日間,3トラック,懇親会やBeer bustなど,⁠楽しまれましたか?」⁠また参加したいですか?」と呼びかけ,会場から盛大な拍手がおくられました。

そして,2010年(RubyKaigi2010)についてです。日程は「7月じゃないかも」⁠場所は「東京じゃないかも」⁠なにも決まっていませんと述べました。今は本イベントでいっぱいいっぱいですが,現実問題として予約などがあるため少しずつ動き出しているとのことです。

そして,RubyKaigiの提供を読み上げ,⁠ありがとうございました!」と締めくくりました。

著者プロフィール

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

ハンドルネームは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