Rubyist Hotlinks 【第 11 回】 後藤兄弟 前編

はじめに

著名な Rubyist にインタビューを行う企画「Rubyist Hotlinks」。今回は、お二人とも著名な Rubyist である後藤謙太郎さん、裕蔵さん兄弟にお話を伺いました。

せっかくご兄弟だから、ということでお二人いっぺんにインタビューしました。今回はその前編で、お二人の Ruby とのかかわりなどを聞きました。後編はお二人の生い立ちなどを伺います。では、お楽しみください。

プロフィール

今回はお二人いっぺんに行うため、プロフィールも二人分です。

後藤謙太郎

gotoken.jpg1969 年、九州生まれ。 Ruby 開発では、主に数学系の機能 (prec.c など) や benchmark.rb などで貢献。 『C MAGAZINE』の連載「極めよ Ruby 道」、「なあ Ruby を読もうじゃないか」をはじめとして雑誌等に記事多数。

座右の銘
「おきらくごきらく」
尊敬する人
両親

後藤裕蔵

gotoyuzo.jpg1973 年、九州生まれ。 Ruby 開発では、ext/openssl や WEBrick など、主にライブラリ分野で貢献。 著作に『たのしい Ruby』(共著)、『Ruby レシピブック』(共著)がある。

座右の銘
特になし
尊敬する人
今までお世話になった人々
ご本人のサイト
AD-HOCKERY DIARY

インタビュー

聞き手
ささだ (記事中「笹田」)
語り手
後藤謙太郎さん (記事中「謙太郎」)、後藤裕蔵さん (記事中「裕蔵」)
野次馬
咳さん、なかむら (う) さん (記事中「中村」)
日にち
2005 年 9 月 17 日
場 所
新宿の喫茶店

目次

インタビューの前に

会場の地図がわかりづらい件

笹田 ここまではどうやってこられたんですか?

 あのちっちゃい地図で。

謙太郎 あれで来られたんですか。

 か、勘で……。

謙太郎 駅からここまでよく来れたね。

中村 その地図だけでは絶対来れないでしょ。

謙太郎 スコープがわかんないんだもん。

笹田 え、これで来たよ。

中村 すげえな。

 このあいだ LL*1 のときタクシー乗ってたんだけどさ、そのとき伊勢丹が見えた気がしたんだよね。

謙太郎 あー、そのかすかな記憶をもとに?

 あれはきっと伊勢丹だったんだろうと。

中村 普通の人は LL に来るのにタクシー使うんですかね?

笹田 え、新宿から?

 歩いても暑いんだもん。

笹田 新宿からデフォルトで歩きじゃないのか。

中村 それが俺らくらいになるとラーメン食いに行くのにわざわざタクシー使いますからね *2

笹田 (笑)

中村 高かったね、あのタクシー。

裕蔵 それなんですか。

謙太郎 新しいいじめかなんか?

中村 意図したわけじゃないけど、自分で自分……だけならいいけど他の人までいじめてしまって。そういうイベントが最近ありまして。

謙太郎 なるほどぉ。

会場がどこがいいかについて

笹田 えー。はじめましょうかねえ。

謙太郎 コーヒーも来なさそうだし。

笹田 うん。まあいつもこんな感じ……こんな感じははじめてかな、いつもは会議室というか、RHG の会場とかオフィスとか。あの産総研のときはオフィスでしたね。

裕蔵 そうか、使わせてもらえるところがあるんだ。

笹田 ええ。

謙太郎 もうちょっと早かったら、オープンソースカンファレンスの会場*3でどっかの部屋を借りれたんだけど。

笹田 あ、なるほど。

謙太郎 ちょっとね、直前すぎたから。

笹田 すいません。

謙太郎 いえいえ。

中村 僕がわがままを言ったせいです。

笹田 あれ、あっちにも咬んでるんですか。

謙太郎 いや、知り合いがいるので。

笹田 あ、なるほど。

謙太郎 うん、ちょっともう頼める状況ではなかった (苦笑)

笹田 いちおう、高橋さん*4には「なんとかなんない?」っていう話はしたんですけど、「もうなんない」って言われちゃって。

謙太郎 そうね、ちょっと遅かったですね。

二人いっぺんははじめてである件

笹田 で、お二人いっぺんにっていうのははじめてです……ね。

謙太郎 効率がいいからそうするとか、そういう話じゃなくて?

あれ、前のなんだっけ、どなたかの時は連続してたけど*5

笹田 ええ、連続はあるんですけど、一緒に、というのはない。

謙太郎 あれ同時、同じ日じゃなかったの?

笹田 同じなんだけど。

中村 順番に一人やって一人終わって。

裕蔵 じゃあそうすればいいんじゃない?

中村 編集部で、どっちがいいかなあっていう話してたんですけど、兄弟を兄弟という売りで押すのがいいのか、普通に二回に分けるのがいいのか。

二人って兄弟っていううわさがあるんだけど本当ですか (笑)

謙太郎 でも、「二人って兄弟ってううわさがあるんですけど本当ですか」っていうのは最近でも聞かれたことがあるから (笑) 実は秘密にしておくとか。秘密じゃないけどわざわざ言わないとか。「同姓の後藤です」とか。

笹田 (笑)

裕蔵 姓が一緒。

笹田 つながりは「同じ名前でした」?

裕蔵 「親が同じでした」

一同 (笑)

中村 たまたま親の姓が同じ、と。でもそれはよくある偶然ですよね。

謙太郎 まあ偶然だよね。

中村 偶然以外の理由はないからね。

笹田 秘密にするのと公開するのとどっちがいいですか?

謙太郎 え? いやどっちでもいいですよ。

生い立ちをどうやって聞いていくか

笹田 あの、生い立ちとか多分重なるというか、一緒に聞いていったほうがいいのかな。と思ったんだけど。

裕蔵 うーん、まあ。

笹田 あんまり重ならない?

裕蔵 同じ家に住んでいたこともありますが。

一同 (笑)

中村 それは同棲してたってことですか?

裕蔵 いやそれはノーコメントで。

裕蔵さんをどう呼べばいいか

笹田 ごとけんさんは「ごとけんさん」で呼びやすいと思うんですけど、ごとゆぞさんとは言いづらいよね、と。

裕蔵 郵送ってことで。

一同 郵送?(笑)

中村 自分で言ったんだからしょうがない*6

謙太郎 自称だからね自称。名乗ってるんだから。

中村 我々もなるべくならそういうことはしたくないんですけど自称だったのでしょうがなく。

まつもとさんとか、すごいわけわかんない署名になってて、謎を解けとかいう話ありましたね。

謙太郎 あったあった。

中村 なつかしいなー。

 なつかしいなそれ。

笹田 何それ、何の謎を解け?

中村 まつもとさんが、きゅうり改*7だから、ちょっとでもミスタイプするとものすごいメタメタな。

笹田 ええ。

中村 それで自分の署名をすごい打ち間違えて一回 dev に投げてて*8、みんなで謎を解けとか。

その頃ちょうど影舞が出たばっかりで、rrr*9 で影舞立ててとりあえずその BTS に登録しとけと (笑)

謙太郎 なにやってるんだっていう。

笹田 なるほどね。

中村 うん。無駄に時間を過ごしたこともあったなぁ、っていう。

謙太郎さんのプロフィール

好きな言葉、座右の銘

笹田 さあインタビュー始めます。お二人に順々というかトピックごとに聞いていこうかなという感じで。

じゃあまず謙太郎さんのほうに、好きな言葉座右の銘などあれば。

謙太郎 ないですねぇ。

笹田 ないですか (苦笑) 終わっちゃった。

 すげー。次の展開が心配なんだけど。

謙太郎 ないですねー。

笹田 ないですか。いつも心がけていることとか。

謙太郎 えー、でも、みんないいこと言ってるからねぇ。「明日出来ることは今日しない」とか。うん、素晴らしいですね。

裕蔵 実践しすぎてこう、反省点なんだけど。

謙太郎 そう (笑)

明後日できることを今日しなくて、明日できることを今日しなかったらねぇ、明日がすごい大変だったりとかねぇ。

裕蔵 うん、そういうことはよくありますけれど。

あぁ、これは載っちゃうんですかね。今言ったことは。

中村 載ります (笑)

笹田 (笑) まぁ、後で読んでいただくので。

謙太郎 あぁ、そう。

笹田 後で何か、すごいカッコイイ言葉をどっかから引っ張ってきてもいいし。……って、いいのかな?

中村 いいのかなぁ。ダメじゃん?(笑)

謙太郎 難しいですね。……この質問リスト*10はあれですか? 笹田さんが考えられたのですか?

笹田 このリスト自体は、えーと、一番最初のインタビュー*11の時にみんなでよってたかって、何か聞きたいことを、っていうのをとりあえず作ったら、それがもうテンプレートになってしまったんですよ。また新しく考えるの面倒くさいし、っていう感じですね。

謙太郎 うーん、いやー、好きな言葉ないですねぇ。「おきらくごくらく」ぐらいですかねぇ。

笹田 これ、載っちゃいますよ? 座右の銘。

裕蔵 (笑) 「おきらくごくらく」

中村 いや、でもいいね、「おきらくごくらく」

尊敬する人

笹田 尊敬する人。

謙太郎 尊敬する人? 両親ってことで。

中村 本気で……ですか?

謙太郎 (笑)

代表作

笹田 えーと、代表作。

謙太郎 何でしょう? 何かありますかね? 代表作って。

裕蔵 benchmark.rb

謙太郎 (笑) あ、それはユーザが多いかも。

笹田 あぁ、よく使います。

中村 一番使ってんの、笹田さんやん (笑)

裕蔵 一番使っててくれてうれしい、僕は (笑)

謙太郎 うーん、ですね。benchmark.rb ですね。

裕蔵 他に何かあるんだっけ?

prec.c 裏話

謙太郎 いやぁ実は汚点があってですねぇ。numeric.c とか、あ、違うか。何だっけ、prec.c とかなんですけど。

笹田 え? 汚点なんですか、それ?

中村 あの辺は、謙太郎さんなんですか。

謙太郎 prec.c は僕ですねぇ。

裕蔵 嫌われてるので。

謙太郎 あれは、僕もちょっとね、変えたくなってんだけど、どう変えようっていうか、困っているっていう所はありますが。

prec.c とか、そもそも誰も存在すら知らないような。

中村 じゃ、いいじゃん。

謙太郎 いや、みんな困っているって。

中村 縁の下の力持ち、ということで。

謙太郎 いやいや、扱いに困っているとか、そういう。

笹田 私も良く知らない。憶えてない。

……これか、「精度を持つ、小数値クラスのための、Mixin」?

謙太郎 それは僕がちょっと、押しが弱かったので、単精度数値クラスと、複素数を組み込みに出来なかったので、今ひとつ使い道がなくなってしまったんですね。

 Float が欲しいって言ったやつ?

謙太郎 そう。Float が欲しいのと、あと、Complex が欲しかった。で、そしたらあの、Array とかで、もうちょっと型の強い Array とか、使えるようになった……かも? っていう感じなんだけど。

著作、連載

笹田 著作とかは?

謙太郎 ないですねぇ。

中村 連載が。

謙太郎 あぁ、連載が昔ありましたね。C マガジンで。

中村 あの連載はどうなったんですか?

謙太郎 えーと、何? オープンにして欲しいと言う感じですか?

中村 何となく中途半端で終わった気がする、とか。

笹田 いつの間にか終わってた気がする。「なぁ Ruby を読もうじゃないか」ですよね? で、CGI のやつを確か読んだ記憶があって、次は abc 順で。

謙太郎 そうですね。ls の順番でやってたんですけど、えーっと、どうして終わったか。僕もよくあんまり覚えていないんですが (笑)

裕蔵 え? どこまで行ったんだっけ?

謙太郎 何か、ジャンプして URI

 URI に行きましたね。

謙太郎 あれは何つながりだったのかな?

中村 Net?

裕蔵 いや、そこまで行ってない。

謙太郎 そんなとこまで行ってないね。

中村 CGI から一気に飛んだ?

笹田 Complex は、やった覚えはないですか?

謙太郎 やった覚えはない*12ですね。

中村 じゃあ、CGI やったから URI、とかなんですかねぇ。

笹田 ネット系で盛り上げ終わった? でももっとあるよ。URI の後ろ。WeakRef, WEBrick

中村 あ、でもそれで YAML が来るからほとんど終わりなんだそれで。

笹田 あ、それやって終わるんだ。

謙太郎 (笑)

中村 当時まだ WEBrick も YAML も入ってなかったとかじゃないっけ?

謙太郎 入ってなかったかな? WEBrick も、YAML …… YAML の方が先*13だったんでしたっけ? 入ったの。

謙太郎 同じぐらい。

中村 まとめてドドっと 1.8 に入ったときかなぁ。

好きなメソッド、嫌いなメソッド

笹田 えーと、好きなメソッド、嫌いなメソッド。

謙太郎 うーん。好きなメソッドは、p

笹田 p。

謙太郎 一番よく使うかな?

メソッドかそれは? っていう話もありますけど。

謙太郎 メソッドじゃない?

中村 立派にメソッドです。

 yycompile() よりは、メソッド。

中村 あれおかしいよ (笑)

裕蔵 ぜんぜんメソッドじゃない。

謙太郎 yycompile() ってねぇ。

中村 それがパッと脳裏に浮かぶところが特殊だよね。

一同 (笑)

笹田 嫌いなの、何かあります?

謙太郎 嫌いなの?うーん、p かなぁ。

一同 (笑)

笹田 p のどの辺?

謙太郎 p っていうか、inspect が何か、すごく大きなデータを使うことがあって、で、inspect が core dump しちゃったこととかですねぇ。

笹田 あー。

中村 ありますねぇ。

謙太郎 それが結構。「どうやってデバッグしたらいいんだー?」とか思いながら。

中村 あれムカツキますよね。

謙太郎 inspect を改造しながらやっていくという、よく分からないデバッグをすることはありますね。

笹田 そうなんですよね。VM をデバッグしてると、p 相当のものが使いたいんですけど、Ruby のメソッドコール部分をデバッグ中だと無限ループになっちゃったりとか (笑)

謙太郎 あー。

笹田 何か、なかなか面倒くさいですよね。いや、これはちょっと、かなり特殊ですが。

中村 うん、それはバグっているからですね。

笹田 うーん……(笑)

裕蔵 容赦ねぇ (笑)

一同 (笑)

裕蔵さんのプロフィール

好きな言葉、座右の銘

笹田 はい、じゃあ、ゆうそうさん*14

裕蔵 何でしたっけ? 忘れちゃった。

中村 好きな言葉。

裕蔵 好きな言葉ね? ないんですねぇ(笑)

一同 (笑)

笹田 それはさすが兄弟という話になるわけですかね?

中村 そういう教育を受けましたと。「好きな言葉はうかつに漏らしてはいけない」と。

謙太郎 おばあさんの遺言で (笑) いや、生きてるんだけど。

笹田 何か無理矢理作ってください (笑)

中村 「おきらくごくらく」に対抗できる何かを。

裕蔵 ……次行きましょうか。

尊敬する人

笹田 次、尊敬する人。

裕蔵 尊敬する人は、まぁ、沢山いるというか。ねぇ。特にはいないというか。

笹田 両親に対抗して。

中村 親不孝なんだねえ、裕蔵さんのほうが (笑)

一同 (笑)

裕蔵 まあ、ね? お世話になった方々みなさん、と言う感じで。

代表作

笹田 はい。うーん、代表作。

裕蔵 代表作は何ですかね? WEBrick?

謙太郎 おーぷんすする?

裕蔵 あぁ、あれはちょっとねぇ。

中村 おーぷんささる *15

裕蔵 いろいろ問題がありますよねぇ。コンパイル通らないし (笑) いつも。

中村 最近は、そんなには。

裕蔵 昔ほどではなくなった。

中村 テストもほとんど通るし。

裕蔵 うん、そうですねぇ。ひところは、なんかやる度に SEGV とか。

中村 Windows でテストさせられると地獄でしたらかね、一時期。

裕蔵 Windows の socket が全然わかんなくて。「なんで止まるんだよ」とか、そんなんばっかり言ってたから。ね。

謙太郎 一時期はね、何か、変わるたんびにうささん*16と裕蔵が IRC でずーっとやってるっていう (笑)

裕蔵 「さ、うささんが commit したから始めるか」っていう。

中村 二人で「わからーん、わからーん」と。

笹田 今は安定したの?

裕蔵 うーん、見た目。

中村 見た目。

笹田 したことにしてる?

裕蔵 何かあの、スレッドとかからむとワケわかんなくって。select しているせいで……。

笹田 select 使うなと。

中村 今は奇跡的かもしれないけど動いてるから、いいことにする。

笹田 もうさわらない?

中村 さわらない。

謙太郎 いや、そうもいかない。あ、SSL はさわらないかな。X.509 とかはさわるけど。

OpenSSL を使う局面はどういうときか

謙太郎 Ruby/OpenSSL 使ってるひとあんまいないよね。Socket 以外のところは。

中村 なひさんくらい?

謙太郎 どういうこと?

裕蔵 いや、みんなこう Net::HTTPS を使うだけで、それ以外の部分が。

謙太郎 暗号化とか?

暗号化は実は僕はよく使ってるんだけど。

裕蔵 あ、そうなんですか。

謙太郎 いやネットワークアプリとしてじゃなくて純粋に暗号化ツールとして使ってる事はあります。

中村 sample にけっこう使えるの入ってるんですよねぇ。

笹田 え、じゃあ sample を見れば使える?

裕蔵 多分。

中村 よく OpenSSL でオレオレ証明書作りましょうみたいなのがあるじゃん? ああいうのは全部 sample にあるのでできるんですよね、実は。

謙太郎 そうそう。

中村 誰も知らないから使わないだけで。

謙太郎 マニュアルがないだけだから。

 sample って、 Ruby のパッケージに入ってるんだっけ、今。

謙太郎 あー、昔のパッケージにはちゃんといろいろ入ってて、僕はそれをよく見てるんだけど。

(ls sample/openssl する参加者たち)

goto4.jpg

裕蔵 あー本当だ。

謙太郎 それそれ。

裕蔵 あるね。

謙太郎 あるんですよ、実は。

笹田 sample 以下? これを使いたい人は読め、と。

裕蔵 うん。なにかできるかも。

謙太郎 僕 OpenSSL はこれで勉強したしね、結構。

笹田 え、 OpenSSL の知識……がないとこれは見ても分からない?

謙太郎 いやいや逆逆。

笹田 逆?

謙太郎 逆。これ見たら OpenSSL は結構分かるようになるんじゃないかな。っていうか少なくともどんなメソッドがあるかは分かる。

中村 今、ささださんがそれを見てて、「これで分かるのかよマジですか」とかいう顔してるんですけど。

裕蔵 それはちょっと乱暴だと思う。

謙太郎 乱暴かぁ。

笹田 いや getopts.rb があってちょっとびっくりっていう。

中村 古いからね。

 あれ、getopts.rb って無くなったんですか?

謙太郎 なくなってないよ。

笹田 obsolete になってなかった?

謙太郎 ああ、でもそれは相当昔からそうですよね*17

要望を通すときは英語で?

裕蔵 今はあれだよね、-W オプション付けないとエラーは出ないんだよね。エラーっていうか警告。

中村 あまりにもうるさいから勘弁してくれと、こう、海のむこうにはわがままな人が多くて。

謙太郎 あれは海の向こうからの要請なんですか?

中村 日本人からの要請は通らないですからね。基本的に。

一同 (爆笑)

謙太郎 そっかー。

中村 日本人が言うと、日本語で議論できちゃうから、説得に成果はでないんですけど、アメリカ人が英語で「困ってるんだよ」って言うと。

謙太郎 仕方がない?

中村 何か、説得し返せないっていう、理由なんじゃないかと。

 ずるいッスよね、英語。

中村 と、僕が勝手に思っているんですけど。

一同 (大爆笑)

中村 いや知らないけど。まつもとさんは英語ちゃんとできるから。

謙太郎 咳さんも、外人としてのキャラを一つ確立して、何か要望があるときは「せっきー!」とか。

一同 (笑)

 外人としてのキャラって何?

謙太郎 Dave せっきーとか。

一同 (笑)

笹田 咳 Dave って言われる (笑)

咳さんの仕事で外国人のプログラマを説得することのほうが難しい話

 仕事そういう感じなんですよね。

中村 あ、そうなの?

 いや、デバッグしてあげるよりも、なぜバグかって納得した時間がすんごい長くて。

一同 あー。

 俺にやらせろって感じ。

一同 (爆笑)

笹田 こうやって、咳さんの話をしだすと、こう、何かアレですよね。いや、すごくしたいんだけど。

中村 また次回ということで。

裕蔵 じゃあ、咳さん、「好きな言葉」は?

一同 (笑)

 三ヶ月間考えとけばいいんでしょ?(笑)

謙太郎 いいよねぇ、それは。

著作

笹田 著作。

裕蔵 著作は、何だっけ、『たのしい Ruby 』とかですか。『Ruby レシピブック 』とか。

好きなメソッド、嫌いなメソッド

笹田 好きなメソッド、嫌いなメソッド。

裕蔵 好きなメソッドはね、Enumerable#inject と昔、イキオイで書いてしまったんだけど。

 inject、いいッスよねぇ (笑)

中村 いいっスよねぇ。

謙太郎 え? inject って、今ひとつ何か、使いにくい感じがしたんですけど。

中村 ツボにハマるシチュエーションにくると、すごくうれしい。

一同 うんうん、すごくうれしい。

裕蔵 テンポラリ変数がいらないところがビビッとくる時がたまーにあるって感じです。

 じゃあ、inject 使うとうれしいんでしょ。inject が好き、ではなくて。

一同 (爆笑)

中村 それってハマる場面が結構ないってことなんじゃないかと。

裕蔵 感動が大きいから、何となく好きな気がしたんだけど……。

謙太郎 確かに僕も一時期ブームがあって、何か事があったら、これは inject で書けないか、って、こう、待ちかまえているような時が。

裕蔵 うん、そうそうそう。

謙太郎 実際あんま使わないよね。

裕蔵 嫌いなメソッドは……特にないかなぁ。何かでも、ハマるのがたまにあるなぁ。何だろう? 何か、拡張ライブラリとかで嫌いというのは、何かあるねぇ。

中村 メソッドじゃなくて、もう、「コイツ嫌い!」とか (笑)

一同 (笑)

嫌いな関数名

笹田 OpenSSL とか?

裕蔵 あぁ、OpenSSL の関数名とかは嫌いなのはいっぱいありますけけどねぇ。

中村 OpenSSL 自体からそのままメソッド名が来てるやつ?

裕蔵 いやー、何かこう、「cert (サート)」だったり、「certificate (サーティフィケイト)」だったりして、略し方が違うとかですね。結構どうしたものだかなぁとか思うんだけど。

謙太郎 あー、じゃあ、X*18 みたいな関数名は嫌いとか? そういう感じ?

裕蔵 いやー、X のはダラダラ長いからいいんじゃない?

謙太郎 あー、そうか。

裕蔵 ああいうのはいいと思うけど。

笹田 一貫しろよ、と。

裕蔵 そうそうそう。

中村 一貫しないと良くないですよね。

裕蔵 一貫しないとお前、ラップするのがメンドーくさいじゃないかと。それだけなんだけど。

謙太郎 あー、確かにね。何か、ダーッと機械的にやりにくいよね。

裕蔵 うんうん。

中村 使うときは一貫してないと。

裕蔵 そうそう、わかんない。体の中で一貫した名前に変えようかなぁとか思うんだけど。

中村 何か、それすると、それはそれでまた「あっちと違う」ってなるから。

裕蔵 そうそう。中途半端に拙くてですね。

謙太郎さんと Ruby

Rubyist になったきっかけ

笹田 では、謙太郎さんのほうで、Ruby についての話を。

謙太郎 はい。

笹田 Rubyist になったきっかけ。

謙太郎 えーとね、それは……。

笹田 てかご兄弟、どっちが先?

謙太郎 僕かな? 僕が「いいよいいよ」って言って勧めたんですけど。

中村 いいなあ、そういう兄弟。

謙太郎 えっとね、日記書いてたんですよ、昔。それで「Python おもしろいなー」とか言ってたら、「Python より Ruby を使え」って後輩に言われて、「へー」とか思ってたら、まつもとさんから突然メールが来て「Ruby を使ってくれてありがとうございます」とかって。

中村 すごいなそれ。

笹田 VIP 待遇。

謙太郎 ちょうど 1.0 のリリースが出たときかな。使ってみようと思って。

笹田 え、何の脈絡もなく、ただ直メールがまつもとさんから?

謙太郎 そうそうそう、「日記見て」って。後輩の日記経由で見てて。

中村 まつもとさんと知り合いだったわけでもないのに?

謙太郎 なんでもないのに突然感謝のメールが来てすごいな、こりゃ使うしかないな、と。

笹田 それがいつ頃ですか?

謙太郎 1.0 がリリースされた時*19だから……。

中村 96 年?

謙太郎 7 か 6 かな?

 fj.sources に流れてたのって 0.9 幾つとか。

中村 0.95 くらいからですかね。

謙太郎 そうですね。

 ビルドできなかったんですよね。

笹田 それ、後輩って会社の後輩ですか?

謙太郎 いや、違います。大学の後輩ですね。で、彼はまだ使ってるのかな? 彼はその頃 proxy とかを書いてたらしいんですけど。

 すごいな。

笹田 それで、まつもとさんからお礼を言われたから……いやそれは違うか (笑) 勧められたから、ということになりますかね。

Ruby とのつきあい

笹田 現在はどんな感じで付き合いを?

中村 Ruby さんとのお付き合いは、お父さんにいきなりばれたので。

一同 (笑)

中村 真剣なお付き合いをさせていただいて……。

謙太郎 そういうお付き合いですか。Ruby ちゃんと (笑) うーんと、なんだっけ……。

中村 遊びだったんですか!

一同 (笑)

謙太郎 最近は Ruby そのものを使うっちゅーより、Ruby アプリケーションはよく使ってますね。あとはワンライナーとしてはもう Ruby 以外は使ってないですけど、ほとんど。例えば明らかに cat とか tr だけでできるってすぐわかるものは別にしたら Ruby で書き始めてて。たまたま行った環境で Ruby がなかったら「あー、あのコマンドはなんだったっけ」みたいな感じで思い出すのに時間がかかっちゃったりとか。そんな感じですね。

アプリケーションの開発とかは最近やってないですね。

好きなところ、嫌いなところ

笹田 Ruby の好きなところと嫌いなところ。

謙太郎 あー、難しいですよね。好きなところはやっぱり書きやすいからじゃないですかね。書きやすいところですね。

嫌いなところは……なんでしょう。あるかな。うーん。嫌いっていうわけじゃないけど、dRuby で考えるんだけど……。

 (笑)

謙太郎 dRuby のことを考えると、インタープリタクラスがあってもいいじゃん、ってよく思うんだけど。

笹田 インタープリタクラスってどういう話ですか?

謙太郎 あーだから、dRuby みたいなの作ろうと思うと、インタープリタが自分に汚染されてない環境みたいなのが一個欲しくて。

笹田 あー。

裕蔵 ささださんが。

中村 マルチインスタンスですね、インタプリタの。

笹田 一応作りたいと。

中村 YARV ネタですよ。

裕蔵 YARV ネタですね。

中村 それも、いわゆる、「YARV が出れば解決」シリーズ。

一同 (笑)

謙太郎 いやー、期待してますよー (笑)

笹田 「あのごとけんさんも」と言えるわけですね。「推薦されてた」と。

謙太郎 いやいや (笑)

中村 ……なんですが、謙太郎さんはどうもこの程度では気に入らない、と。

一同 (笑)

謙太郎 そんないじめないで (笑)

mswin32 版に関する話

 汚染されてないインタプリタ環境は、今なら「いいかとりあえずプロセスで」とかって。

一同 (笑)

謙太郎 結局別プロセスあげて通信するんだけど。

中村 そんな別プロセス同士が通信できるなんていう発想が、もうね、甘いんですよ。うわーん (笑)

一同 (笑)

笹田 通信はできるんでしょ?

中村 socket は全然問題ないですけどね。

裕蔵 え、全然 問題ない? (笑)

中村 見かけ上は問題ないですからね。

笹田 fork とか言い出すとあれなんですよね。

中村 fork とかするからいけないんです。あと、サーバで gets とかで待ってもよくなりましたから、一応。先日。

 あ、そうなんですか。すげー。

中村 ついに解決しました。

笹田 dRuby 本 の注釈は。

 消しますか、あれは。

中村 1.9 が出ればね。

 消したいんで、あれ買ってください。

一同 (笑)

中村 1.8.4 には入るかもしれません*20。1.9 で様子をちょっと見てから。

笹田 あの IO の stdio 捨ての話とは関係ないの?

中村 ない。以前はもっとすごい難しいことをしようとして、stdio 捨てて、うにょうにょ、と言ってたんだけど、この前 LL の時に田中さんと話した機能をベースに書いてみたら、すぐできた。

一同 ふーん。

中村 もちろん、完璧じゃなくて問題はけっこうあるんだけど、とりあえず、gets で待ってもよくなった。

笹田 これからは、その苦情が来なくなるわけですね。

中村 でも Enter 以外叩いちゃだめよ、とかつまらん制限はあるんですけどね。

咳さんのところに来る困ったメールたち

 それが入ったら私に来る dRuby 関連のメールの半分くらいが減るかもしれない。

一同 (笑)

裕蔵 半分も来てるのかよ!(笑)

 英語のメールがね。

中村 「動かない〜。このままじゃ動かない〜」

裕蔵 「固まるんじゃ〜」

笹田 dRuby の苦情ってけっこう来るんですか。

 来ますよ。「gets で止まる」とか「irb で止まる」とか。

笹田 何通くらい来るんですか。

 数えてないけど、週に 2、3 回は来てた気がする。今はそんなでもないですけどね。

中村 ruby-talk でも定期的に新人が来てすぐそれに引っかかって。

一同 (笑)

 もう半分は /etc/hosts にホスト名入ってない奴。

裕蔵 登竜門だなー。

中村 みんなそこに来て、で、「それは仕様です」と言われて、「そんなことができねえのかよ!」みたいな。

一同 (笑)

謙太郎 すごい言われよう (笑)

中村 「できねえんだよ」みたいな (笑)

一同 (笑)

裕蔵 凄んでどうする (笑)

中村 「文句があるならパッチ書けよ」とか。

謙太郎 「書いたんだけど」って出したらどうなるんですか (笑)

中村 いやパッチ書いてきた人もいるんですけどね、昔。これがまた全然使えない代物で。

一同 (笑)

中村 こっちは評価するのに凄い時間かかるのに、こんな使えないパッチ送ってくんなよ、と。

裕蔵 reject するの大変ですよね。

 そういうの来ますよね。dRuby3 を開発する、っていう人が来て。

一同 (笑)

笹田 あれ結局どうなったんですか?

 いやもうそれっきりですよ。

一同 (笑)

裕蔵 「がんばれ」とか?

 いや、違う違う。socket 減らしたい、ていう話を書いてたんですけど、今は敢えて減らしてないところがあって、「そういう問題があるけどどうなの?」って言ったら、もうシーンと。

一同 (笑)

裕蔵 そういう場合はいいですね。明白な事実で帰る場合はね。

中村 ガイジンってわりと思い込みで投げてくることが多いような気がしませんか?

謙太郎 ガイジンってそれは (笑)

裕蔵 ガイジンに限らないんじゃないそれは (笑)

中村 直メールで来るのはそういう奴だけだからかな。

 直メール系はそうですね。

笹田 うささんにも来るの? Ruby mswin32 版に対する直メール。

中村 僕にもたまに来ますよ、困ったの。

笹田 mswin32 のページがあるから? いや、何にリンクしてんのかなあ、と。

中村 ああ、それで来るんかなあ。

笹田 咳さんだったら dRuby ってあるけど。

中村 よくわかんないのけっこう来ますよ。なんでか知らないですけどね。

咳プロダクツのドキュメントについて

goto6.jpg

 でも苦情系はまだよくて、「RDoc 書いたから読んでくれ」っていうのが凄い困って。膨大な文書が来るんですよ。でも読めるわけないじゃないですか。

一同 (笑)

 だから、返事書いてないですけどね。

一同 (爆笑)

裕蔵 結局そうなるのか (笑)

笹田 サンプルか何かを書いてくれたとか?

 dRuby の RDoc、いや、Rinda の RDoc を書いたっていうのか、最近のは。

謙太郎 Rinda の、へー。

笹田 ドキュメントを。

 ERB を書いたって人も来たんですけど、同じタイミングで、ほらドキュメントいっぱい書いてる人がいるじゃないですか*21、あの人が書いちゃったんで、「あの人と話してくれ」って投げちゃった。

一同 ふーん。

謙太郎 でも、Rinda とか、ドキュメントない、で困ってる人いるでしょうね、きっとね。

中村 日本は今、本が出たから万事解決ですけど。

謙太郎 解決なのかな? (笑) でも Ring とかね、みんな使えるのかな。よくわかんないけど。

 どうなんですかね。

謙太郎 僕は咳さんに直接聞いたりして使えてるんだけど。

 ホットラインがあるから (笑)

中村 なんでアメリカ人にはホットラインを拒絶するんですか。

一同 (笑)

裕蔵 意味がわからん (笑)

 日本語じゃないんだもん (笑)

中村 言語差別はあります、と。

謙太郎 差別って、わかんないんだもんねえ (笑)

裕蔵 むしろ差別されてるっていう (笑)

中村 ……話が逸れてすみません。

成功事例

笹田 じゃあ、ちょっと戻して。Ruby を使って成功だった事例。

謙太郎 あー。

笹田 Ruby がうまくハマったなという。

あんまり他をやってないから分かんないとか?

謙太郎 いやー、Ruby が成功だったっていうわけじゃないんですけど、お仕事で書いたプログラムでものすごく速くなったっていうのがあって。

笹田 へー。え、何から何まで?

謙太郎 もとは多分 Perl なのかな。でも Perl だからとかっていう理由で遅かったんじゃないので、Ruby がハマったっていうわけではない気もするな。

中村 Rubyでだったらさっとまっすぐに書き直せて。

謙太郎 うん、自分の思った通りのことが書けたから,というのが強いかもしれないですね。それは。

中村 書きたい事が書けるっていうのは、言語ではものすごい大切な事ですね。

謙太郎 なんかね。同じ事を Java でやれとか言われたらちょっと。

中村 書いてるうちに嫌になってくる。飽きてきたとか。

謙太郎 「あー、これも必要じゃん」とか、こう。

中村 「ここにもこれ書かなきゃいけないじゃん」「あー final 付け忘れた」とか、いや final は付け忘れないけど、まあそんなの。

謙太郎 うーん、あるかなぁ。これだっていうのは。

わりと思いついたネタをすぐ形にしやすい事はいいかな、つまんないやつとか。前ちょっと個人的に面白かったので、kakasi の学年別パッチとかいうのがあるんですよ。

 小学何年生とか?

謙太郎 文部省の基準で何年生はこの漢字までとかって表があって、それを kakasi でパッチをあてられたかたがいて、で、それを使った proxy っていうのを書いてですね (笑) 接続にいくときに「三年生」とかって選んで proxy を設定しとくと、三年生でも読めるページに任意のページが変換できるっていう。

笹田 あー。なるほど。

中村 どんないやらしい言葉も。

一同 (笑)

謙太郎 そういうのは別に、技術的に難しい要素はぜんぜんないじゃないですか、変換してくれるやつがいたら。それがもうなんか。

あ、で、そのときに多分 WEBrick の proxy を作ったんじゃないかな。

笹田 ああ、そのために?

謙太郎 そんな気がするなぁ。

笹田 へぇー。

WEBrick の proxy を書き直したい

裕蔵 いやちょっといくつか書き直したいところがあるんですが。

謙太郎 いや僕も (笑) ものすごく書き直したいんだ proxy は。

中村 あれに関しては僕はいろいろ言いたいことが最近山のようにあるんですが。

裕蔵 あ、そうなんですか。

中村 でも WEBrick の問題じゃないのかなぁと思ったり。

裕蔵 え?

謙太郎 え? なになに? たとえば。

中村 あの、プロトコル変えたくないんですよね。v4 と v6。

裕蔵 はいはい。

中村 クライアントから v4 で繋ぎますよね。で proxy を通ってサーバは v6 で聞きにいったりするんですよね。

裕蔵 あー。

中村 それがちょっと個人的には厳しいんで制限する方法がないかなあ、と。

裕蔵 え、 Apache とかどうなんですか?

中村 どうっていうのは?

裕蔵 Apache だと v6 で繋ぎにいくと v6 でリクエストしてくれるんですか?

中村 いや、知りません (笑)

裕蔵 あー、だけど、欲しいと。そういうのが。

中村 そう。僕はそういうのがほしい。

謙太郎 ああ、なるほどね。それはまあ妥当かな。

中村 本当は単に The RWiki が IPv6 の経路だけ落ちてて繋がらなかってすごいむかついてたという (笑) 俺 v4 で繋ぎたいだけなのに勝手に v6 で繋ぎにいって繋がんねえよと。

 きっと須藤さんがなんとかしてくれるんじゃないですかね。

中村 ああ、もう直ったんですけどね、それは。裕蔵さんに何度かそれにまつわる苦情を。

(唸る一同)

裕蔵 ……無理、ですね。

一同 (笑)

謙太郎 即答かよ!

裕蔵 いやでもね、仕様的にどうなんだろそれ。

中村 どうなんでしょうね。proxy がどうあるべきかっていう話になっちゃう。proxy というもの、WEBrick のじゃなくて。

裕蔵 proxy レベルでいうと、そんなことは関知するもんじゃないんですよ、きっと。HTTP のレベルではねぇ、そんなプロトコルが何かとか関係ないはずだし。

謙太郎 v4 しか使えない端末でも亀*22が踊ったりして。

中村 そうそう、そうなんですよ。この前それで、「実は v4 でも亀が踊るじゃん!」とかいってひとり喜んでた (笑) いいんだかわるいんだか。

使ってるアプリケーション

笹田 話を戻しまして。

さっきアプリケーションで Ruby をよく使ってるって話でしたけど、使ってるアプリケーションっていうのはどんなものになるんでしょうか?

謙太郎 えーっと、影舞。

笹田 影舞。

謙太郎 影舞と Hiki と RWiki、どっちも使ってるんですけど。

笹田 ふーん。Hiki と RWiki って時と場合で使い分けるんですか?

謙太郎 いや、そういうわけではなくて、先にどっちをインストールしちゃったかっていう。色々と使ってる場所で変わってるんですよ。

笹田 環境ってことですか?

謙太郎 そうですね。 RWiki を先に入れちゃったところでは RWiki。

笹田 あ、はいはい。

謙太郎 Hiki を入れちゃったところでは Hiki っていう。

Hiki はでもちょっと難しいかな。いろいろ変わった事ができちゃうから。

笹田 へー。

謙太郎 なんだっけ、HikiFarm とかたててやってるんですけど、一応動くんだけど、ちょっとしたパッチとか手で当てたりとかしてると、次に更新したときにどうやったら動き続けられるのかとか、そういう。まあ何のアプリでも一緒なんですけど。RWiki は……。

 なかなかリリースされないから。

謙太郎 リリースされないからね (笑)

一同 (笑)

 安心。

謙太郎 安心して使える。ここしばらくリリースって言葉を聞かないし。

 じょ、情熱が……。

謙太郎 あとは RWiki はすごくいいんだけど、プロセスがすごくでかくなるから。

 そうなんスよねー。

謙太郎 ちょっとね、何年か使ってると「どうしたらいいのかなー」って結構深刻に悩んじゃいますね。

 自分を Marshal してもう一回立ち上げるのがいいかなーと思ってるんですけど、定期的に*23

謙太郎 あー。

ある程度以上大きなページが入ると、動けなくなっちゃうんですよね。

笹田 え、全部オンメモリに持つんでしたっけ?

 ええ。

笹田 あ、そうなんですか。

 そこでページ名毎にプロセスを分けるっていう。

謙太郎 だから、アルファベットの頭文字の数くらいプロセスがいるといいのかな。

 そうですね。27個バージョンとか。

謙太郎 そうそう。

中村 そして日本語は全部まとめてなので変わらない、とか。

 奇数偶数バージョンで二個くらい走らせておくとか。

中村 日本語も一文字目でどうにかすれば……今はどんな内部名で持ってるのかなぁ?

 私よく憶えてません。

Ruby の習得は簡単でしたか

笹田 えと、Ruby の習得は簡単でしたか。最初勧められた時は。

謙太郎 あんまり憶えてないですけど。

笹田 じゃあ、つまった記憶もない?

謙太郎 最初のうちは、僕 Perl って実は当時ちゃんと使えなかったんですよ、だから Perl を知ってたら分かったんだろうなぁみたいなのは結構あって。

ブロックパラメータのスコープについて

笹田 正規表現まわりとか?

謙太郎 正規表現で置換する時とか。なんかね、最初よく分かんなかったのはたとえば gsub で第2引数で置換する場合に、第2引数に \1 っていうのが……。

一同 ああ。

謙太郎 \1 っていうのは動作をよく考えれば当たり前なんだけど、そこに \1 って書く場合と後ろに $1 って書く場合は何が違うんだろうっていうのが分かんなかったのが。よく考えりゃ当たり前なんですけどね、評価の順番とかを。

あとは評価順序が最初よく分かんなかったですね。それまで僕が使ってた言語は Python と C と、あとは awk とかなんですけど、そういうのと比べると若干直感に反する……ブロックが入るからワケ分かんなくなるのかな。混乱してたのかもしれない。

ブロックの、あとスコープが今ひとつ最初よく分かんなかった。

笹田 あー。

謙太郎 ここに書いたやつはどこのやつが読めるんだろうとか最初は分かんなくて。分かれば「なーんだ」っていう話ではありますけどね。

ブロックのスコープっつうのも難しいですよね。……まあいいや。それは偉い人がみんな言ってるから。

笹田 (笑) いまだにあれは、うん、論争というか。でもあれはもう決着したのかな?

裕蔵 もういまは決着してるんですよね*24

笹田 あの、ブロックパラメータのスコープがどうなるかとか。はじめて出てきたやつとはじめてじゃないやつとか。

裕蔵 初出のやつはその中で閉じてるってやつですね。

笹田 ええ。閉じるようになったのかな?

あ、そうだ、で、ブロックパラメータが上のほうにあるやつを重ねたときにそれはローカルなのか上のやつと共通なのか。

中村 shadowing されるかどうかですね。

謙太郎 今はどうなんですか?

笹田 いまはされない。隠蔽されなくて共有する。

謙太郎 それは昔からそうなんじゃ。

中村 昔から。もとがそうで未来の仕様は?

笹田 今回変わる、という話だったような。違ったかな。

謙太郎 1.9 では変わるの?

中村 変わったんだっけ、1.9 ではまだ変わってないんだっけ?

笹田 いや、知らない。確認しないと分かんない。

謙太郎 それは文法とかを変えるわけではなくて、もういきなり変わっちゃうんですか。

中村 それを何かするための文法が、っていう話も。

謙太郎 え?

中村 挙動分けるために「;」使うとかっていう話ですよね。

裕蔵 そうそう。

笹田 え?

裕蔵 それはそれで半端な仕様ですな。

謙太郎 ごめんなさい、僕最近よく知らないんですよ。

中村 (ささださんが試しているのを覗いている)……あ、でも違うのか?

笹田 でもこの話はぜんぜん最近は出てないから。

中村 もうなくなったのかな。

 いや、この文法かどうかは別としてですよ。

笹田 分ける事は多分しないと思う。どっちかに必ずなると思う*25

同じのが出てきたら「エラーにする」というのが前田修吾さんの主張で、でその主張がダメになったっていう。コピペしたときに動かなくなっちゃうのがよくないよねっていう話で。

謙太郎 あー。

中村 もうそのへんはなんとなく前田さんの感性を信じて前田さんに説得にあたってもらう方向で。

笹田 うん、で、まつもとさんは前田さんに「じゃあそれにしよう」って言ってたんだけど翻っちゃったっていう話で。

中村 ある日日記を見たらぜんぜん違う事が書いてあったって (笑)

謙太郎 でも動かなくなっちゃうってどうせ動かなくなっちゃうんじゃない? かぶってた場合。

笹田 ただそれに、かぶってても……あれどうなんだろ?

謙太郎 代入されたりするとなんか嬉しくない動きをするんですよねきっと。

笹田 するかも。

裕蔵 コピペして動かないっちゅうのはなんか特殊なシチュエーションが決まってるんだよね、きっとね。

謙太郎 いや動かない……。

裕蔵 動かないのは、それは……。

謙太郎 いや、上書きされると嫌だから動かなくしようっていう話なんだよね。それが「動かなくなるからダメだ」っていうのはなんかこう。

裕蔵 でもなんか、うーん……行き違いがあるような気がする。

中村 説得して → 納得してもらって → 気が変わって、の間に時間が結構あるから、誰もが自分の主張を忘れてるんだよね (笑)

笹田 私としては早く決めてくれというのが*26

中村 なんでもいいから早くしろと。

謙太郎 そういう人もいるよねぇ。

初めてプログラムを書いたのは

笹田 先にプログラミング全般の話も、謙太郎さんのほうに。

謙太郎 はあ。

笹田 はじめてコードを書いたのは?

謙太郎 また難しい……いつだろう、多分中学校の時

笹田 後藤家にはパソコンがあった?

謙太郎 いや、パソコンじゃなくてマイコンですね。

笹田 マイコン。

謙太郎 うん。

笹田 じゃあそのへんの話は生い立ちのほうで。

Ruby 以外のプログラミング言語

笹田 Ruby 以外のプログラミング言語。

謙太郎 何を使うかな。

笹田 最近はあんまり使ってない?

謙太郎 最近は……Python かな。

一同 (笑)

笹田 さっき Ruby ばっかりって言ってたじゃないですか!

謙太郎 いや、うーっと、えーっと。

中村 ああ、ツールとしての Ruby はよく使うけどプログラミング言語としては……。

謙太郎 Python。

笹田 あー。

謙太郎 か、あとはシェルスクリプトかな。

笹田 お仕事とかで納品する時とかは Python とかそんな感じですか。

謙太郎 まあそういうことですね。

笹田 Python はじゃあ客は認めてくれるんですか。

謙太郎 いやべつに。

笹田 気にしない?

謙太郎 どうでもいい、気にしない仕事。いや Ruby の時もあるんですけど。

笹田 その Python か Ruby かってどうやって決まる?

謙太郎 ああ、それは、元々何を使うかっていう話で、Python でゼロから書いてるわけじゃなくて Zope を使うからとかそういう理由があるから。WEBrick を使う時は Ruby とかそういう感じです。

笹田 ふんふん。なるほど。

Python もじゃあよく使うと。

謙太郎 まあぼちぼち。

笹田 ふーん。他はあります? Python とシェルスクリプト以外で。

謙太郎 他なんかあるかなー。あんまり、ないですね。そうですねぇ。

笹田 好きなのっていうとあります?

謙太郎 言語として? 言語として好きなのは Scheme かなぁ。

笹田 Scheme。ほう。

謙太郎 でも Ruby も好きですしねえ。

あと Prolog みたいなやつっていうのも。もうちょっと使い出があるやつがあったら使いたいんだけど

一同 うん。

謙太郎 今ひとつ処理系が。

笹田 ええ。

謙太郎 ぐっと来ないので使ってないだけで。

美しいソースコード

笹田 美しいソースコード。なんかあります? 印象に残ったのとか。

謙太郎 Ruby じゃないですかね。今はちょっと、僕はドキュメントが入る前が好きだったんですけど、コメントが入る前の Ruby は。

笹田 あ、Ruby インタープリタ?

謙太郎 インタープリタ。あ、Ruby で書かれた、っていう話ですか?

笹田 いや何でもいいんですが。

謙太郎 Ruby のコメントちゅうか、RDoc が入る前はすごく、なんだろう、いわゆるほら文芸的プログラミングってあるじゃないですか。あれをやらなくていいっていう感じがすごくして。

笹田 まあ見りゃ分かる。

一同 (口を揃えて) 見りゃ分かるじゃんねえ。

中村 そのまんま書いてある。

謙太郎 あれでもなかなか真似できないですよね。

中村 できないですねー。

謙太郎 あれはすごい感動しましたね。

中村 あれ見た後 Perl のソース*27見ると、死にたくなりますね (笑)

一同 (笑)

謙太郎 まずいっぱい grep してこれなんだったかって調べないといけないですよねえ。

笹田 でも最近は結構ごちゃごちゃしてませんか、Ruby。その RDoc 以外でも、Array をどう最適化するだの。

謙太郎 あー。

それはだから eval が難しいとかっていうのは昔からだと思うんだけど。

笹田 eval.c 以外でもいろんなものが。callcc のためになんとかするとか。

謙太郎 あー。

中村 そういう例外パターンみたいなのが増えていくとどうしてもごちゃごちゃしますよね。

謙太郎 ということは若かったのかな、Ruby が。

中村 若かったころの Ruby は美しかった……。

一同 (笑)

謙太郎 いやいや! その落ちはどうかと!

 まとめられた……奇麗に……。

謙太郎 いや奇麗なのか? 激しく疑問。

興味を持っているテーマ

笹田 えーっと、今興味を持っているテーマ。

謙太郎 あー。そうですねえ……CMS (Contents Management System) かな。

笹田 ほう。ご自分で作りたいと思ってるんですか?

謙太郎 うーん、CMS そのものも作ってみたいけど、やっぱり Zope はすごいなっていうのがあって。

笹田 あー。

謙太郎 うん、最低限用意しないといけないプラットフォームみたいなのがすごい興味があって。Zope だとやっぱり、ファイルシステムの抽象化とか、もうやるべき事はやってあって、後はその上で作ればいいみたいになってるんだけど、Ruby だとまだちょっとそれには。WEBrick のもう一段上っていうのをもう少し固めないと、CMS くらい大きいアプリケーションはちょっと作りにくいかなという気が。もちろん作れるとは思いますけどね。

裕蔵 WEBrick はただのコンテクストがあるだけだから、なんというか CGI みたいなもの。

謙太郎 そうね。そうなんだよ。プロトコルを表現するためのものなんだよね、結局。そのもう一個上の、アプリケーションのロジックが表現するための言語みたいなのがちょっと欲しい。言語ちゅうか、どういうのがいいかは分かんないですけど。

笹田 そういうのに興味があると。

謙太郎 はい。

Zope のここが不満

笹田 ふーん。……でも Zope で充分なんですよね? そうでもない? Zope にも不満はある?

謙太郎 機能的に全部理解してるわけじゃないので、わかんないですけど、不満ていうか、自分でちゃんと分かりたいっていうのはありますよね。けっこうきちんと。

中村 うん。

謙太郎 Zope の場合やっぱりね、結構巨大なので、全部分かるのは難しいですよ。

笹田 今言った意図は「Zope でいいんじゃないですか」っていう……。

謙太郎 いやあと、なんだろうなぁ、ああいうレベルのプログラミングを Zope でやってあると、もうその上を Ruby で作るとかって難しいじゃないですか。

笹田 はいはい。その上で Ruby で書きたいっていうのがちょっとアレですよね。モチベーションとしてはあるけど。

謙太郎 それはちょっと現実的じゃないですよね。

goto1.jpg

裕蔵さんと Ruby

Rubyist になったきっかけ

笹田 では裕蔵さんのほうで。 Ruby については。Rubyist になったきっかけ。

裕蔵 それはですね。いつだっけ。99 年の……。

笹田 99 年。

裕蔵 なんだっけ、 Ruby Workshop とかいうのがあったんですよ。赤坂で。たしか。そこにですね……。

笹田 ASCII のやつでしたっけ?

謙太郎 JUS かな?

裕蔵 JUS かな。

笹田 JUS?

裕蔵 当時僕は Ruby 全然使ったことがなくてですね。こう、北海道からやってくる人がいてですね (笑) で、宴会しようってことになったんですよ。 notwork.org っていうドメインがあってですね。そこの人たちで宴会しようって。じゃあ待ち合わせはそのへんでしようかって、じゃあついでだから Workshop 行ってみようかなって。で、行ったんだけど、そのときにレポートみたいなの書くじゃないですか、JUS のワークショップとかって、セッションごとに。それを書いたら入場料タダになるって言うから、じゃあひとつって言って (笑) 全然聞いててもわかんなかったんですけど。それからかな。

笹田 それ聞いてわかんなくて、別にやろうとは思わなかった? そのときは。

裕蔵 そのときはあまり思わなかったですね。でも全然わかんないとまずいなーと思って、前の日ぐらいにこう、チュートリアルみたいなやつしたんですけど。

それからちょっとしてから、仕事で Oracle とか使うときに、よしだむさんの Oracle モジュール使うと簡単じゃんとか思って、それからですね。

笹田 なるほど。んじゃきっかけは Oracle と。

裕蔵 なるほど Oracle ですね。

 あの部屋も Oracle。

裕蔵 そうですねあの部屋も Oracle でしたね、赤坂の。

笹田 あー。なるほど。

中村 Oracle から Ruby に入るって言うのも結構変わってていいですね (笑)

裕蔵 (笑) そうなんですかね。

笹田 で、今ではもう、本まで書いちゃって。

中村 あんまでもいないと思いますよ。Oracle 使う使うために Ruby はじめるって。

裕蔵 DB から入る人は結構いるんじゃないですか。

笹田 dbo? dbi か。

中村 DB 系でなんかしようと思ったから Ruby に行くってまずいないと思います。

一同 (笑)

裕蔵 今は DBI があるからね。昔なかったから、DBI が。

中村 だから使える言語なら何でもいっかーで Ruby? なるほど。

DBIって嬉しいの?

謙太郎 DBI って嬉しいか? とか、こう……。

 DBI のいいところが分からないんだけど。

謙太郎 なんか、ねえ?

裕蔵 ああだから、必ずしも共通化されるわけではないよね。

謙太郎 データベースエンジンなんてそれぞれ違うし。どうせ。

裕蔵 概念だって違うし。

 あれ DBI が嬉しいのってたぶん SQL から戻ってきたやつを Ruby の型にしてくれる所くらい?

謙太郎 ああそうですね、それは嬉しいかもしれないですね。

いやなんかこう、ね? 結局その、たとえば納品したやつのデータベースエンジンあとから変えるか? って、こう……。

中村 絶っっ対ないですね。

謙太郎 (笑)

笹田 まあ、そうなんですかね。 MySQL で開発して Oracle で運用とかは絶対ないと。

謙太郎 絶対ないですね。

裕蔵 オープンソースで、複数のエンジンに対応しないとちょっと嫌っていわれたとかはあるかも

謙太郎 そういうのはあるかも。

中村 そういうのはあるかもしれない。

笹田 tDiary みたいなのって、うちは Postgres だよとか言われると、っていうこと?

中村 でも実業務にぶち込まれることは、業務が決まってて、ここにぶち込みますで選定した DB が納品の後変わることはありえないですよね。

謙太郎 うん、ありえないですね。

中村 つうかそれあったとしたら「ラッキー作り直し。さあ全額払え」ですよ (笑)

一同 (笑)

笹田 なるほど。

Ruby とのつきあい

笹田 では現在の Ruby との付き合い。

裕蔵 は、趣味と実益を兼ねてですね。

笹田 お仕事では?

裕蔵 そうですね、使いますね。

好きなところ、嫌いなところ

笹田 Ruby の好きなところと嫌いなところ。

裕蔵 好きなところは……書きやすいところとかって思いっきりかぶっちゃうじゃないですか。

笹田 (笑) まあいいんじゃないですかね。

中村 兄弟だなぁ。

謙太郎 感性が似てるなぁと。

裕蔵 嫌いなところは……特にはないかな。

嫌いなところ:リリースノートはなぜ書かれない?

裕蔵 うーん。リリースノートくらいは付くといいのかなと思いますね。

中村 リリースノートねぇ (苦笑)

裕蔵 ていうかライブラリのメンテナが書けよとかこういろいろ。

中村 そうそう。

裕蔵 ねえ? いろいろありますけど。

中村 書けばいいのにねぇ。添付ライブラリとか作ってる人か。

裕蔵 そうそう。なひさんとかは勝手に出してるじゃないですか、soap4r とかやって。あれをまとめるような体制があってもいいのかなぁとちょっと思ったり思わなかったり。

謙太郎 Changes みたいなもの?

裕蔵 うん、それくらいはあったほうがいいかなぁという気がする。

笹田 ないことはないと思うんですが。ただ集めるのが結構。

裕蔵 そう、集まってないのが。あれどうやったら集められるんですかね。みんな安いコストで集めたいと思ってると思うんだけど。

中村 一人、暇な人がいればいいんですよ。

裕蔵 やっぱり一人必要なんですか。

中村 ええ。だれかコミットするたびに全部書き出しといて。

謙太郎 あー、まえやってた。

中村 うん、僕が前にちょっとやってました*28けど、ああいうのをずっと続けてやって。

謙太郎 あれでも集大成可能なんですかね、よくわかんなかったんですけど。

中村 あれ最初僕が適当に書いてましたけど、あとで rrr に行った時に何人かでやってたじゃないですか、ああいうのがしっかり継続できれば。

謙太郎 うーん。なんとなくやめちゃうんですよね。

中村 うん、ちゅか……。

謙太郎 同時に忙しくなっちゃうんですよね、みんな。期末とか。

中村 じゃあ学生に頼む?

謙太郎 学生はでもね、学生じゃなくなるから。

 たしかに。

中村 持続してあれをやる気力と暇が維持できる人がいればいいのにねー。

リリースノート:他の言語はどうしてるんだろう

裕蔵 他の言語とかどうしてるんでしょうね。

中村 どうしてるんでしょうね。

笹田 それなりに金取ってくるんじゃないの? Perl とかだったら完全にそうじゃないですか。

中村 Apache とかも金が出るんですよね。

謙太郎 もうちょっとこう、小さい言語はどうなんですか。

裕蔵 ちいさい言語はこう、いや拡張ライブラリが。

中村 あれだけゴタゴタとコミットされるっていうのも他にはあまり。

謙太郎 ないのかな。 lua とかどうしてるのかな。

裕蔵 lua もなんかついてた気がするけど。

リリース頻度が低いことにはメリットもある

中村 Ruby のコミット頻度と規模がいかがなものか、っていうのが。

 頻度は高いね。

中村 頻度高いですね。

笹田 リリース頻度は低い。

中村 リリース頻度が低くてコミット頻度が高いってことは……。

笹田 ChangeLog がでかい、Changes がでかいのか。

中村 Changes がでかくなるってことですよね。だから後で出るときにまとめて、ってことはとてもやる気にはならないというか。

笹田 だからやっぱりリリースをもっと短くすればいいんじゃないですかね。ふた月にいっぺんとか。

中村 いや、それはそれで厳しいんだけど (笑)

謙太郎 それはねぇ、リリースが長いっていうのは結構やっぱりメリットで、やっぱりビジネスで使ってると、リリース出たら……出なかったら評価すらしないんだけど、出たら評価しないといけないじゃないですか。

笹田 はいはい。

裕蔵 それはけっこうね、あると思いますよ。

謙太郎 うーん、だから、Changes をがんばってでっかいのを書くっていう方向を見つけないと辛いですね。

リリースノート:Python はなぜあんなにドキュメントがんばれるのか

中村 Python くらい書ければいいんですけどね。

謙太郎 あれはすごいですねぇ

中村 すごいですねぇ。でっかい細かく書いてるのがばーっとあって、重要なところピックアップしたサマリっぽいやつもちゃんとあって。

笹田 使ってる人口の違い?

中村 使ってる人口がどんなに多くても書く人がいないとできないわけだから、やっぱ書く気力がある人が存在するっていうことがすごいんじゃないですかねぇ。

謙太郎 なんかね、 Python のプロジェクトそういうの多いですよ。

中村 多分、あのインデントでいいんだと信じるタイプの人間ていうのが……。

笹田 (笑)

中村 こういうことをやらないといけないという思想に (笑)

謙太郎 (笑) 僕もそれ思ってた、そういう風に

笹田 そんなに括弧書かなくていい言語っていうのは。

中村 「あれしなくても書けるじゃん」「これしなくても書けるじゃん」とかそういう系統だと「だって Changes なくても動くじゃん」とか (笑)

 たしかに Python の雰囲気からすると書きそうな気がしますよね。

謙太郎 ドキュメントのプロジェクトとかもねぇ、ちゃんとみんな仕事するし。えらいですよ。Python の人たち。

中村 「ソースにバグも全部書いてあるじゃん」とかで済む文化との差があるんですよ (笑)

だって僕らまつもとさんにそういわれると「そうだよねー」とか。

一同 (笑)

中村 多分ね、絶対 Guido*29 とかそんなこと言わないわけですよ。「アホか。書けよ」とか言うんですよ。

笹田 仕様書いてるのかな。

謙太郎 え、誰が?

笹田 Guido。Python の仕様を。

謙太郎 最近どうなんでしょうね。

笹田 BNF はたしかありましたけど*30

中村 一個下というか、コアの層の人たちがそういう思想なんじゃない? Python をヲチしているわけじゃないからよくわかんないですけど。

謙太郎 うん。

中村 僕らはその一個下の層と言われるものがあるかどうかよくわかんないですけど、めんどくさいよねっていう空気はぼんやり漂っていたり。

謙太郎 わりと開発に力を入れるんだよね、Ruby は。

笹田 ドキュメント書いてる暇があったらコード書いてる?

中村 タイムマシンがあっても結局パッチしか書かないっていう場合*31も。

成功事例

笹田 はい。 Ruby を使って成功だった事例。

裕蔵 んー、難しいですね。

笹田 ちょっと答えづらいところが、なんかはまったっていうのは?

裕蔵 いやまあだいたい Ruby で書くことが多いからだいたいなんでもはまっているというか。

笹田 自分にはまっているという感じですか。

裕蔵 そうですね。

キラーアプリ

笹田 自分にとってキラーアプリ、ライブラリが何かありましたら。

裕蔵 自分にとってってどういう意味なんですか。

笹田 よく使ってるとか。

裕蔵 あー。そうですね socket.so はけっこう、こう。

笹田 使いますよね。

裕蔵 いや使うっていうか、あのネットワークアプリ、ネットワークプログラミングを前からやっててですね。学生のころとかくらいから。

笹田 こんなに簡単にできるとか。

裕蔵 そうそうそう。

笹田 そうですよね、なんかへんなおまじない少ないし。

裕蔵 sock_addr_in がどうとか書かなくていいんで。できなくて辛いときもあるんですけど。

笹田 アプリケーションはなにかあります?

裕蔵 アプリケーションは tDiary とか使ってますけどね。そうですね、tDiary はすごく使いやすいと。使いやすいっていうか、ああいう感じのものはあんまりなかったんじゃないかな。その、Web で設定できて。

中村 設定については偉い。

裕蔵 そうですよね。

中村 昔なかったですよね。設定はファイルで書いて。

裕蔵 中身は全然見てないんで、僕は。単なるユーザーとしてしか分からないんですけど。

Ruby の習得は簡単でしたか

笹田 Ruby の習得は。

裕蔵 簡単だったんじゃないんでしょうか。あんま覚えてないんですけど。引っかかるのは elsif のスペルが分からなかったとかですね。最初ね。

笹田 あー。

謙太郎 e を入れちゃう? elif って書く?

裕蔵 elif……。

中村 今ぱっと書けって言われても考えるとかないですか。

謙太郎 いやそれはもう。

裕蔵 もうさすがにもうそれは。

笹田 ときどき else if って書いちゃう。

中村 僕いつも間違えますけど。

 僕仕事のプログラムのプロトコル名 elsif にしました。悔しくて。

一同 (笑)

謙太郎 そんなに悔しかったんだ (笑)

中村 いまだと C で #elif とかを書けなくてはまったりするんです (笑) もう俺は何を書いていいのか分からない。

笹田 まあエディタで色変わってくれるから。

中村 変わんなかったらもう絶対わかんない。

謙太郎 間違ってもねえ。メソッドと解釈されるともしかして。いや elseif なんとかって書いて……。

裕蔵 それだったらでもメソッドがないって怒られるから「あぁー」って分かるんじゃない?

謙太郎 いや、動かさないとわかんない。

中村 そういうメソッド名のメソッドを作ったよく使われるライブラリっていうの仕込んどくと楽しいことが起こるんですかね (笑)

謙太郎 なんか googel みたいな……。

 method_missing に書いておいたらそこの所で何でも動いちゃったとか。

笹田 動いたら「ざまあみろ」っていう (笑)

謙太郎 「ひゃっほう」とか (笑)

中村 そこで「orz」ですよ。

笹田 require 'orz'

はじめてプログラムを書いたのは

笹田 えーと、はじめてコードを書いたのは。

裕蔵 大学入ってからかな。

笹田 あれ? おうちにマイコンが……あ、そうか、謙太郎さんがやってたときにはあんまり興味なかった?

裕蔵 ぜんぜん。

笹田 ふーん。

裕蔵 いやなんかあるのは知ってたんですけど。

笹田 大学生のときは何やってたんですか?

裕蔵 大学生のときは普通に授業ですね。C のプログラム書かされたりですね、そういうような。それで、いやそれでってわけじゃないな。FTP でゲームダウンロードしてきてコンパイルしたりとかやるじゃないですか、大学生のころって。でそういうのを一生懸命やってですね、で、ついでにたまにこう動きが気に喰わなくて弄ったりとかして覚えたというのはあるんじゃないですかね。

笹田 へー。

 そういうもんなんですか。

次々に明らかになるみんなの Cheat 経験

裕蔵 いやもう nethack のデータを何度もセーブできるようにしたりとか (笑) あるじゃないですか。

謙太郎 そうだよねー、一個しかなくて困るよねー。

一同 (笑)

裕蔵 それはまあたとえ話。はい。

笹田 あまり、ソースがそもそもあるという文化に私はいなかったから、ちょっとそのへんはよく分からない。

謙太郎 あー。

笹田 ゲームがあったら。

中村 ソースがあるとかないとか関係ないんですよ。

笹田 ああだから、ゲームを弄るっていう欲求があったらとりあえずバイナリエディタで開くとかそういう感じだったんで。

謙太郎 あー。

中村 普通ですよ。

笹田 普通なのか。

謙太郎 どこの普通なんだ (笑)

バイナリエディタで開くって何のゲームですか?

笹田 え、なんだろ、ゲームとかで「なんでこれゲームオーバーが三回までしか許されないんだ」とか。

中村 僕生まれてはじめて組んだプログラムって『ブラックオニキス』*32のセーブデータ改竄するやつでしたからね。

一同 (笑)

謙太郎 みんなそれかよ (笑)

笹田 まあ、ええと、それがはじめてということで。

裕蔵 な感じですかね。

Ruby 以外のプログラミング言語

笹田 Ruby 以外は?

裕蔵 Ruby 以外は……使うのは C とか。もしかしたら Java とかたまに使うか。

笹田 Python は使わない?

裕蔵 Python 使わないですねぇ。読むことはありますけどねぇ、ソースを。

笹田 何かその中で好きなこととか。

裕蔵 使う言語で?

笹田 使わない言語でも。

裕蔵 んー、難しいですね。Lisp とか好きなんじゃないかと思うけど全然使わないんで。

笹田 Lisp は好きって言っとくとよさそうっていうのはありますよね (笑)

裕蔵 そうですよね。かっこいい、みたいな。

中村 この世界では「Lisp は好きなんですよねー」とかいうと「あー、あなたもですか」「ええ」みたいな。

裕蔵 そうそう。

 本当は知らなかったりとか (笑)

謙太郎 なんなんでしょうね。その文化は。

裕蔵 なんだっけ。『ハッカーと画家 』とかっていう本があって。あれの中でも同じことが。

中村 そういうところでも負けずに「括弧が嫌いなんだよ!」とか。

謙太郎 「じゃあスーパー括弧で」とか。

美しいソースコード

笹田 えーと。美しいソースコード。

裕蔵 んー。そう Ruby って俺言おうと思ってたんですけどね。言われてこう、悔しいところなんですけど。困りましたね。

中村 NetBSD とかどうなんですか?

裕蔵 NetBSD をどうっていうと、あー。

謙太郎 場所によるんじゃないの。

裕蔵 んー。じゃないですかねぇ。

笹田 ソースもハックするんですか? NetBSD の。

裕蔵 読むときもあるけど書き直すことはあんまないですね。

笹田 え、何のために読むんですか。あんまり OS のソースを読むっていうモチベーションは…… OS が作りたいとか好きだとかいう人のモチベーションは分かるんですけど。

中村 バグってるからです (笑)

裕蔵 バグってるからです (笑)

笹田 あー、しょうがなく?

裕蔵 いやネットワークとかでこう、「なんでこのコード返ってくるんだろう」とか。

笹田 あー。なるほど。

中村 OS からのエラーコード grep してっていうのは結構ありますよね。

裕蔵 うん。

謙太郎 そゆのよくあるかもね。

笹田 よ、よく?

中村 僕がよくあるのは、Windows で Unix のまねをしなきゃいけないっていう目にあうことがけっこうあるんでそういうときに NetBSD をみると「ああ、こうなんだー」

笹田 あー。なるほど。

中村 これを Linux で同じことやると……。

裕蔵 (笑)

中村 とかいうことが起きるので。

裕蔵 探しやすいかもね。

中村 NetBSD は分かりやすくていいですね。

謙太郎 そこには慣れもあるんじゃないですかね。

中村 いやぁ、どうかなあ?

一同 (笑)

謙太郎 まあまあまあ。

興味を持っているテーマ

笹田 今興味を持ってるテーマ。

裕蔵 なんでしょうね。

笹田 CMS とか?

裕蔵 CMS は作んないですね。さすがに (笑)

うーんと、なんだろ。なんか CA みたいな物を作ろうと前から思ってるんだけども。

笹田 何みたいなもの?

裕蔵 CA。*33

笹田 あー、はいはい。

謙太郎 あー、ほしい (笑)

裕蔵 なんか自己署名証明書作って後適当に署名して配るとかするようなツールとかが欲しい。

謙太郎 Web でピョイピョイってやったらピョイって出してくれるの欲しい。

裕蔵 OpenCA とかあるんですけど、結構めんどくさくて。使うのが。豪華な仕様を目指しているのか……。

謙太郎 だいたいいつも作んなきゃいけないのは似たようなもんだから、store だけちゃんとしてくれれば。

裕蔵 そうなんですかね。

謙太郎 CVSup を IPv6 に対応したいとかいってる人がいるけど。

裕蔵 CVSup ですか。

謙太郎 modula-3 を弄らなきゃいけないらしい。

中村 無理っしょ。

謙太郎 うーん、modula-3 をビルドしたはいいんだけど、modula-3 のプログラムを書こうと思ったら make みたいなものも modula-3 で書かなきゃいけないとか。

裕蔵 そうですね。

笹田 へー。

謙太郎 何もしてないんですけどね。

笹田 じゃあそういう認証系が興味がある。

裕蔵 そうですね。いちおう Ruby/OpenSSL のメンテナンスをしているので。

中村 Ruby/OpenSSL のメンテナンスをしているからそっちに興味があるのか、そっちに興味があるから Ruby/OpenSSL のメンテナンスをしているのか。

裕蔵 最初は SSL をしたかっただけなんですよね、HTTPS。

中村 皆さん同様というやつ?

裕蔵 うん。で、いろいろなりゆきで。仕事とかもちょっとそういうのやってたんで。証明書を出すとかの方のツールとかはあんまりないかなと思っている。

(以下次号)

途中で

今回は後藤兄弟インタビューの前編をお送りしました。後編ではお二人の生い立ちなどをお届けする予定です。お楽しみに。

(インタビュー:ささだ, 編集:卜部, 石原, 中村, 西山 (順不同))

Rubyist Hotlinks 連載一覧


*1 このあいだの LL : LLDN http://ll.jus.or.jp/2005/ のこと

*2 タクシー乗り付けてラーメン : LLDN 終了後、勢いで白山ラーメンに行こう、ということになって、タクシーを使ったこと。タクシーでラーメン屋に行ったのは初めてだけど、出来れば最後にしたい (ささだ)

*3 オープンソースカンファレンス : 同日、OSC2005-Fall が行われていた

*4 高橋さん : 高橋会長も OSC2005-Fall の企画などに関わっていた

*5 連続 : 第 1 回〜第 3 回のお三方と、第 6 回〜第 8 回のお二方は、それぞれ同日に連続してインタビューが行われた

*6 自分で名乗ったんだから : ruby-list:37789 などで実績が

*7 きゅうり改 : 日本語入力の際にできるだけ左右の手で交互に打鍵できるように考えられた配置。きゅうり改をふくむきゅうり系配置については http://khdd.net/kanou/im/kyuuri.html などを参照のこと

*8 すごい打ち間違え : ruby-dev:21297

*9 rrr : かつて rrr.jin.gr.jp というサイトがあった

*10 リスト : インタビューする人には事前に質問事項のリストを渡してある

*11 最初 : まつもとさん、前田さん、かずひこさんへのインタビュー。これは同日行われた

*12 やった覚えはない : 実際には第 4 回 (2002 年 5 月号) が complex.rb

*13 YAML の方が先 : YAML が 2003 年 5 月、WEBrick が 2003 年 7 月

*14 ゆうそうさん : せっかく郵送さん、と呼んだのだが、華麗にスルーされてしまった

*15 おーぷんささる : make test-all で openssl のところで固まるという問題が頻発した時期があり、一部で冗談交じりにそう呼ばれていた

*16 うささん : 中村のこと

*17 相当昔から : とはいえ実際に obsolete と宣言されたのは ruby 1.8.2 からなのでそんなに昔でもない

*18 X : X11

*19 1.0 : 1996 年 12 月

*20 1.8.4 には入るかも : まだ問題が残っているらしいということで、1.8.4 では見送られる方針

*21 ドキュメントいっぱい書いてる人 : たぶん William Webber 氏

*22 亀 : KAME.net の表紙画像の亀は v6 で見ると踊る

*23 RWiki の高速化 : 現在 svn のリポジトリに入ってる版は、使用するメモリが 1/3 になりました。ついでにキャッシュを使って再起動にかかる時間を短縮 (1/5) しました。相乗効果で 15 倍高速に立ち上がるサイトもあります (咳)

*24 決着 : してない予感…… http://www.rubyist.net/~matz/20051022.html#p01

*25 セミコロン記法 : なくなっていない。たとえば、

 % ruby-trunk -ve "i=j=1; 1.times {|i; j| p [i, j] }; p [i, j]"
 ruby 1.9.0 (2005-11-13) [powerpc-darwin7.9.0]
 -e:1: warning: shadowing outer local variable - j
 [0, nil]
 [0, 1]

というようになる

*26 早く決めてくれ : 仕様が決まらないと YARV が作れないから

*27 Perl のソース : 超絶技巧を駆使した、よくいえば芸術的なコードらしい

*28 ちょっとやってました : http://www.dm4lab.to/~usa/ruby/d/200309c.html#id20030926_P3 から。3 ヶ月くらい続いた

*29 Guido : Python の原作者 Guido van Rossum 氏。http://www.python.org/~guido/

*30 BNF : BNF はもちろんとても重要だが、BNF があったからといって言語仕様がすべて既定されていると考えるのは甘い (ささださんはそれを分かって言っているのだと思われる)

*31 タイムマシン : 中田さんはパッチ作成スピードがあまりに高速であるため、未来からタイムマシンで持ってきているのではないかなどと言われている

*32 ザ・ブラックオニキス : 1983 年発売の PRG。PC88 上などで動いていた

*33 CA : Certificate Authority。認証局