Rubyist Hotlinks 【第 2 回】 前田修吾さん

はじめに

Rubyist Hotlinks は、毎号、著名な Rubyist にインタビューを行っていこう、という企画です。基本的には、前回のインタビュイーに、その次のインタビュイーを紹介していただくことになっています。ということで、前回のインタビュイーのまつもとゆきひろさんからのご紹介で、今回は、前田修吾さんにインタビューさせて頂きました。

なお、このインタビューは、まつもとさん、かずひこさん同席の場で行われました。 というわけで、時々お二人の鋭いツッコミも入っています。

前田修吾さんのプロフィール

shugo_top.jpg愛知県生まれ。大阪での大学生活は数学科で始まったが、その後哲学科に鞍替えしてしまったという変り種。 その大学時代に (学業と関係なく)Ruby に出会い、その Ruby が縁となって、まつもとさんと同じ株式会社ネットワーク応用通信研究所に就職することに。

現在は島根県に在住。家族は奥さまと二人のお子さま。

著書に『{{isbn('4274064611','Ruby アプリケーションプログラミング')}}Net::HTTPFatalError (503 "Service Unavailable"): inline plugin
(共著)』がある。

好きな言葉
「明日できることは今日やるな」
尊敬する人
まつもとゆきひろさん

インタビュー

聞き手
ささだ
語り手
前田さん
野次馬
まつもとさん、かずひこさん
日にち
2004 年 8 月 30 日
場 所
株式会社ネットワーク応用通信研究所 本社

好きな言葉、尊敬する人

ささだ
好きな言葉、座右の銘はなんですか?
前田
「明日できることは今日やるな」(笑)
ささだ
それってなにか元ネタがあるんですか?
前田
いや、別に。
ささだ
開発スタイルがそんな感じなんですか?
前田
そうですね。ずっと遊んどいて、一気に全部ぱっとやる。
かずひこ
じゃ、今日は何をするんでしょう?(笑) 今日の締め切りのことを今日やるわけでしょうか?(笑)
前田
よくアテが外れます。できると思ってたらできない、とか。
ささだ
では、尊敬する人は?
前田
まつもとゆきひろさんです。
まつもと
真似しないほうがいい(笑) というか、みんな真似しないか。
shugo00.jpg
ささだ
以前、伺ったことがありますが、確か、まつもとさんに憧れて、こちらにいらっしゃった、とか。
前田
そうですね。まつもとさんのようになりたくて(笑)
まつもと
笑いながら言うし。「なりたくて、かっこ、笑い」(笑)
かずひこ
気にかかるパターンですね(笑)

生い立ち

ささだ
では、生い立ちなどから伺いたいと思います。
前田
1975 年に愛知県常滑市で生まれました。大学は大阪で、ちょっといろいろやって 5 年間ぐらいいて、それから松江に来て、ずっとこの会社でお世話になってます。
ささだ
プログラミングとの最初の出会いは?
前田
小学校のときに、MSX*1 ってあったじゃないですか。当時ファミコンが流行っていたんだけど「ファミコンはダメ」って言われて……。
まつもと
小学校で MSX なのか、羨ましいなぁ。それで MSX ならいいなんて、ものわかりのいいお父さんだ(笑)
前田
当時は雑誌に BASIC のコードが載ってたりしたじゃないですか。試しに自分で作ろうとしたら、スプライト*2が 4 つ並んだら点滅しちゃって、とかあったじゃないですか*3。で、そこからしばらくは、全然コンピュータ触ってなくて。
ささだ
MSX が原体験になって、その後の空白の期間はどうしてたんですか?
前田
普通に学生やってました。
ささだ
クラブ活動とかは?
前田
中学校は水泳で、高校では最初弓道をやりましたけど、途中から帰宅部に。
ささだ
スポーツマン?
前田
……ではないですね(笑)
ささだ
じゃあ、プログラミングが復活したのは、大学からですか?
前田
そうですね。大学に入ったときに、当時 NeXT*4 があって、MSX のころからずっとブランクがあったので、NeXT 見た時に「これはすごい」と思って。
ささだ
どこで見たんですか?
前田
大学の情報センターが全部、端末が NeXT だったんですよ。
まつもと
「300 台大量導入」 キヤノンが大喜びしたやつだ。
前田
最初は黒 NeXT しかなくって、途中から Intel の白いハコに変わったんですね。
ささだ
で、それで、NEXTSTEP*5 使って、WebObjects*6 とかには行かなかったんですか?
前田
WebObjects は使えなかったですね。もっと後のほうだし、高かったですよね。
ささだ
NEXTSTEP には詳しくないんですが、どういう OS なんですか?
まつもと
UNIX だよ。ていうか、NEXTSTEP は Mach*7 なんだけど。
前田
カーネルが Mach で、BSD サーバがあって……。
ささだ
で、上に載ってるのは全部 UNIX 系のものなんだ。
まつもと
外観は UNIX っぽいシステムだけど、ウィンドウシステムが X じゃないから、Linux などの常識が通用しないかもしれない。
ささだ
哲学科でありながら、そっちで遊んでた?
前田
ま、遊んでましたけど(笑)
ささだ
なぜ哲学科に行ったんですか?
前田
最初、数学科で入ったんですけど、ついていけなくて。それで、一気に理学部から替わってしまったんです。
ささだ
数学から哲学。似たようなもんだとか?
前田
いや。ぜんぜん違う。数学者に哲学者は多いですけどね。
まつもと
数学はタイムスパンが違うよね。コンピュータ関係の偉大な人はまだ生きてる人が多いんだけど、数学の偉い人ってみんな死んでるもんね、何千年も前に。ユークリッド*8とか。
ささだ
百年前の論文を参考文献にしたりするんですよね、数学の人は。
まつもと
ね、すごいよね。
ささだ
数学、哲学、コンピュータ……。数学からコンピュータならわかりそうな気がするけど。
前田
まつもとさんは数学きらいですよね。
まつもと
うん(笑) 嫌いだし、ダメだし……。
前田
コンピュータには必ずしも数学の素養はいらないかもしれない。
まつもと
要るのは国語だ(笑)「コンピュータ国語論」
ささだ
じゃあ、数理情報じゃなくて国語情報とか。
まつもと
国語情報、けっこういいんじゃない? でも、国語情報だと、自然言語処理みたいになっちゃうか。

Ruby についての一般的質問

Rubyist になったきっかけ

ささだ
そして、Ruby との出会い、Rubyist になったきっかけに繋がるわけですが。
前田
Java がその頃、流行りだしていたころで、「これからはこういうオブジェクト指向言語なんだ」と思ってたんです。だけど、Java のメーリングリストで「Ruby っていうのがあるよ」って聞いて、使ってみたのがきっかけでした。
ささだ
じゃあ、Java 経由 Ruby なんですね。それがいつ頃ですか?
前田
多分、1997 年とかそのくらい。それまでもそんなに Java でいろいろ書いてたわけじゃないですけど、その後は Ruby がメインになって。

Ruby とのつきあい

shugo01.jpg
ささだ
では、現在の Ruby とのつきあいは?
前田
仕事でバリバリ使ってます。

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

ささだ
Ruby の好きなところと嫌いなところは?
前田
好きなところは、思ったことをすぐに書ける、というか……。Java とかだと、決まりきったことを何回も書かないといけないケースがあって、記述が冗長になりますよね。getter と setter とか、毎回同じようなことを書かないといけなかったり。Ruby だと、そういうのが少なくて、書く量が少ない。
まつもと
プログラマが怠けるための方法はいろいろ用意されてる(笑)
ささだ
では、嫌いなところというと?
前田
あんまりないんですけど、多重代入が難しすぎるところと、ローカル変数のスコープのルールですかね。
ささだ
多重代入難しいですよね。
前田
昔さんざん議論したけどさっぱり覚えてない。このあたりの仕様は Common Lisp 風に変わることを期待しています。
ささだ
ローカル変数のスコープのルールっていうと、ブロックパラメータの衝突の問題ですか?
前田
それは、Ruby 2.0 の仕様でも嫌いな点です*9。それ以外にも、そもそもブロック中ではじめて初期化された変数のスコープが自動的にブロックローカルになるのが嫌いですね。これは Ruby2.0 では変更されるからいいんですけど。
ささだ
他にはなにかありますか?
前田
あ、あと super() がきらいです。引数がない時は () を省略する主義なのですが、super だと () を省略できないケースがあるのが。
ささだ
super だけだと、呼び出しもとの引数がそのまま渡るっていう機能と、引数を渡さない (0 個引数を渡す) というのがバッティングしちゃうって問題ですね。どうしたらいいんでしょうね。
前田
そんなに (呼び出し元引数をそのまま渡す機能は) 必要なんですかねえ。
ささだ
その機能に別の予約語をつけるとか? なんて名前がいいんだろう。
前田
いい名前はないんじゃないかなあ。いい名前がないならきっといらないんだ。とか言いつつも、便利だからつい使ってますけどね。

Ruby を使った事例

ささだ
Ruby を使って成功した、うまくいった、という事例は?
前田
ネットワーク周りのコードは、Ruby で書いたらさくっと書ける。C だったら、システムコールを何個も呼ぶところが、TCPSocket.new で一発。

Ruby のキラーアプリ

ささだ
Ruby関連で、自分にとってのキラーアプリはありますか?
かずひこ
mod_ruby *10 ですよね(笑)
前田
でも、mod_ruby、仕事以外ではあんまり使ってないんですよ。
ささだ
え、使ってないんですか? なんでそれを作ろうとしたんですか?
前田
あ、あれは最初はお仕事で作ったんですよ。入社する前にバイトで作って……。Web 系とかは、あんまり好きではないんですけど。
ささだ
えぇ!? そうなんですか?
前田
はい(笑)
かずひこ
前田さんの日記、mod_ruby で動いてないですよね。*11
前田
あ、動いてないですね。
かずひこ
modruby.net の lily *12 では動いてるけど。
前田
最近、modruby.net では、mod_ruby 使うようにしたんですよね。ついこの間までは、スタティックな HTML しかなかったです(笑)
ささだ
じゃあ、キラーアプリは結局、Ruby では存在しない?
前田
mobileimap *13 は、よく使います。
ささだ
高林さん*14のシリーズは私も利用させてもらってます。pdumpfs *15 も、quickml *16 とか。
前田
mobileimap が出るまでは、Net::IMAP*17 は全然使われてなかったんじゃないかな。変なメッセージがくると、パースエラーになってたりしたんですけど、あれのおかげでバグが直せました。

よく使うライブラリ

ささだ
よく使うライブラリはありますか?
前田
require するやつですよね。あんまり「これ」っていうのはないですけど、Date クラスは便利ですね。自分のやりたくない計算をしてくれるのが嬉しい。

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

ささだ
好きなメソッド、嫌いなメソッドは?
前田
collect 系のは、だいたい好きなんですけど、でも、あれらは、Ruby というよりは Smalltalk っぽいですよね。Ruby 系だと、gsub とかですかね。
ささだ
嫌いなほうは?
前田
嫌いなほうは、gsub の破壊的バージョン。
ささだ
え、嫌いなんですか?
前田
戻り値が……。
shugo03.jpg
ささだ
まつもとさん、前田さんは gsub! は嫌いだそうですよ?
まつもと
だって、あれは、わざわざ見にくく、使いにくくしてあるんだから。
前田
でも、嫌いと言いつつ、多分コード見たら結構使ってると思うんですけど(笑)
まつもと
暗黒面に手を出すときには気をつけてね、っていうことで(笑)

Ruby の習得

ささだ
Ruby の習得は簡単でしたか?
前田
簡単、といえば、簡単でしたね。
ささだ
どこも引っかからずに?
前田
つきつめると、多重代入の厳密な動作がバージョンによって違うとか、細かいところは結構難しいですよね。だけど、普通に書いてるぶんには、あんまり引っかからないですね。
ささだ
すんなりいきましたか。
前田
たぶん。自分で処理系作ろうとか思う人は、細かいところが気になってくると思うんですけど、普通のプログラマは、あまり引っかからないんじゃないかなぁ。
ささだ
私のことになっちゃいますが、ブロックの使い方が最初はわかんなくて、ループを while でやってました。
前田
ブロックは、比較的受け入れやすかったですね。

主なソフトウェア作品

ささだ
代表作は、mod_ruby でいいんですかね?
まつもと
eruby *18
前田
eruby……。使ってないですね、あれも(笑)。
まつもと
eruby も仕事で作ったんだよね。未踏*19の前に、IPA の仕事を取ったことがあるんだよね。それはいくつかのプロジェクトの集合体だったんだけど、そのうちの mod_ruby と eruby のプロジェクトは、僕が前田くんに業務命令で出した。

プログラミング全般

Ruby 以外の利用言語

ささだ
初めてコードを書いたのは、さっき話にあった MSX で?
前田
そうですね。
ささだ
Ruby 以外のプログラミング言語は、何を使いますか?
前田
C# でよく書いてます。
ささだ
C# はいいですか?
前田
C# は、別によくはないですね(笑)
ささだ
好きだから、じゃなくて便利だから? ライブラリが揃ってるからとか、言語仕様がまあまあ使えるから、とか。
前田
便利ですね。Java だと、今はあるのかもしれないですけど、昔はリフレクションでコード生成とかなかったですよね。C# はそのへんがわりと揃ってる気がして。
ささだ
好きな言語は何かありますか? Ruby 以外で。
前田
CLU*20 とか Sather*21 とか。Ruby と全然違うのばっかりですけどね。

印象に残るソースコード

shugo04.jpg
ささだ
今まで読んだ中で、最も美しいソースコードは?
前田
Ruby のライブラリ部分、eval.c、parse.y とか以外。C でオブジェクト指向っぽく書かれてますよね。あと、apache のソースとか好きですね。個々のコードの断片がどうこうより、全体の構造がきれいなのが好きなのかも。

現在、興味を持っているテーマ

ささだ
今興味を持っているテーマは?
前田
今は、.NET 用のコンパイラーを作ってます。全然、Rubyist な話題じゃないんですけどね(笑)
ささだ
babel っていう処理系でしたよね? そもそも、Sather という言語は何ぞや、っていうのが、私は詳しくないんですけど。
前田
Sather は、UCBで開発されたオブジェクト指向言語です。後にGNUが開発を引き継いで、今はもう処理系がメンテされなくなってるんですけどね。静的な型の言語でいろいろ先進的な機能があって、たとえばイテレータとか、Java のinterfaceみたいにインターフェースだけの継承もありますし、code inclusionと呼ばれる、実装だけの型適合に影響しない継承もあったりして、いろいろおもしろいんですけど、あんまりはやらずに消えた感じですね。
ささだ
どのへんに魅力を感じたんですか?
前田
インターフェースの継承と実装の継承が分離されてるところとか、あと、Java とかに比べたら、記述が冗長じゃないような気が。例えば、ローカル変数の型の宣言は省略できたりするんです。代入で出てきたら、右辺のほうで型がわかるから、宣言が省略できるという。結構、静的な型が好きなので、それは欲しいと思うんですけど、なるべく記述は冗長じゃなくしたいっていうのもあって。
まつもと
かといって、ML*22 は……。
ささだ
あそこまではいきたくない?
前田
メソッドの引数の宣言とか、明示的に指定したい気がするんですよ。だけど、その中ではある程度省略したい。
ささだ
型の話を言い出すと、Ruby を見ると、っていうところはあると思うんですが、そのへんは?
前田
Ruby に型を持ち込みたいっていうリクエストを出す人は時々いるんですけど、Ruby に型みたいなもののサポートを追加しても、多分あんまり嬉しくないと思うんですよね。というのは、静的に解決できないので。そういう方向を目指すなら Haskell*23 のように型推論で省略して、とか、そっちのほうがいいんじゃないかな。
ささだ
.NET にこだわってるというか、.NET 上でやろうとしているのはなぜ?
前田
こだわってるわけじゃないんですけど。まず、さっき言ったように、コード生成のための機能が揃ってて実装が楽、というのはあります。あと、自分で一から作ったら、ライブラリを全部作らなくちゃいけないですけど、ある程度ユーザーがないとその作業はあんまり嬉しくないと思うんですよね。でも .NET に乗っかっちゃえば、自分ひとりしかユーザーがいなくても、人のコードをどんどん使えたりするじゃないですか。そういう意味で普及を頑張らなくてもそこそこ使える処理系ができるんじゃないかなあ、と思って。
ささだ
インフラが整ってるのって、やっぱりいいですよね。
まつもと
あとは、Sather と .NET のセマンティックの微妙な違いをどうするか。
ささだ
やっぱり、微妙な齟齬がありますか? そういうところは埋まりそうなんですか?
前田
妥協しないといけない点はいくつか出てくると思います。たとえば、C# のクラスを継承したいという欲求は絶対出てくると思うんですけど、そのままそれを Sather に持ち込んで来ちゃうと、継承がそれだけで 3 種類出てきて、それはどうなのかな、っていうのが。
まつもと
違う言語になるしかないよ(笑) babel っていう言語を作ろうよ(笑)
ささだ
C# のライブラリを呼び出せるインターフェースのようなものはある程度できてるんですか?
前田
一応、普通のメソッド呼び出しとかはありますけど、まだ配列が扱えないんで(笑) というのは、Parameterized Type*24 を実装してから、配列の扱いを決めようと思ってたんですけど、今はその Parameterized Type を実装中で。
ささだ
なるほど。……難しくなってきたので、このへんで(笑)

日常生活など

普段の仕事

ささだ
普段のお仕事は、何されてるんですか?
前田
普段はばりばりコードを書いてます。何を書いてるかとなると、守秘義務があるので……。まあ、ネットワークがらみのものが多いですね。
ささだ
使っている言語は?
前田
だいたい、Ruby か C ですね。
ささだ
え、C で、ネットワークのプログラムするんですか?
前田
あ、最近は C の仕事より、Ruby の仕事のほうが多いですね。昔は C でやらないといけないような仕事が結構あったんですけど。こちらで自由に開発環境を選べる場合は、Rubyを選択することが多いです。

Ruby で大規模プログラミング

ささだ
じゃあ、まつもとさんのインタビューで話題になった、Ruby で 1 万行とか 2 万行のプロジェクトの話を聞きたいんですけど、実際のところ、どうでした?
前田
XP *25 でやったんですけど、テスト書くのは、多分、Java とかに比べて楽なんじゃないかな、と。ちょっと困ったのは、若干性能に問題がある部分があって、一箇所だけ数十行くらいの C の拡張ライブラリを使いました。んですけど、全体としては、Ruby で、どうしても遅い、ということはなかったです。
ささだ
言語だけの話として、Java などじゃなくて、Ruby で 1 万行書くのは問題なかったですか?
まつもと
たとえば、型がないと駄目とかいうことはない?
ささだ
テストを書いていけばいいんですかね?
前田
何万行っていっても、結局メンバー4人くらいで、XP でペア*26をスイッチしながらやってたんで、だいたいどのコードも一応わかる感じになってたんです。でも、これが、たとえば複数のチームが分かれてて、コードだけもらってそれを結合するというときだと、ちょっとどうなるかわからないですね。
ささだ
そういえば、Ruby のコーディング規約を作られてましたよね。あれはどうでした?
前田
あれは結局、細かいところは守らなかったです(笑)
ささだ
守らなくても十分だった? それとも、規約自体に問題があった?
前田
十分だったのかなあ。少人数でペアをスイッチしながらやってたので、規約をとくに意識しなくてもだいたいは同じようなスタイルで書いてたんですが、細かいところではちょっと外れるところもあったりしました。
ささだ
あの規約自体はよかった?
前田
あの規約は、よかったというか、別に普通ですよね(笑)
ささだ
じゃあ、お仕事としては、そんな感じで Ruby で幸せにプログラミングされてる、と。
前田
そうですね。

生活スタイル

ささだ
普段の生活スタイルは?
前田
だいたい 10 時から 12 時くらいの間に会社に来て、6 時、7 時位に帰る感じです。
ささだ
普通ですね。
一同
普通なのか?(笑)
ささだ
え? 違うんですか?
まつもと
会社員としてはどうかと思う(笑)
前田
まつもとさんよりはだいぶ早いかもしれない。XP やってたときは、9 時くらいに来てましたけど。
ささだ
ペアプログラミングだと、Web やメールなどが見られないから大変だとかいう話もありましたよね。
前田
ああ、大変なのかな。仕事する時間は増えますね。
ささだ
気が抜けないですよね。もう一回やりたいですか?
前田
機会があれば、またやっていきたいですけど、一人で済む規模の仕事が多いんで。
ささだ
で、7 時くらいに家に帰る?
前田
7 時から 8 時くらいですね、家に着くのが。
ささだ
で、自分の趣味の時間を取って、それから寝る、ですか?
前田
そうですねぇ。あんまり趣味の時間がないですけど。
ささだ
家で仕事してるんですか?
shugo02.jpg
前田
いや、コード書くのが趣味っていうことです(笑) コード書く以外の趣味の時間はあんまりないですね。昔は結構本を読んでたんですけど。
ささだ
本は何を読まれてたんですか?
前田
ミステリーとか。最近は全然読んでないです。
ささだ
家で書いてるのは babel なんですか?
前田
最近はそうですね。

仕事とプライベートの両立

ささだ
仕事とプライベートの両立は? 仕事で Ruby で、プライベートで C# ということになりますが。
前田
普通と逆っぽいですけどね(笑) 別に C# を使うのが目的じゃないですから、あくまでも道具で割り切って使ってるんで。割り切って使う分には、そんなに使いにくくはないです。C で書くより楽ですよ。
ささだ
プライベートといえば、親バカですよね。
前田
いやいや。普通ですって。
まつもと
普通は写真載せない*27よ(笑)
かずひこ
でも、『{{isbn('4756144411', 'Lightweight Language MAGAZINE')}}Net::HTTPFatalError (503 "Service Unavailable"): inline plugin
』に載ってましたよね*28
まつもと
しまった、あれは失敗だったな、と後で思った。
前田
でも、それで「誘拐されるのが……」とか心配してる時点で親バカじゃないですか。
まつもと
全くだ(笑)
かずひこ
でも、誘拐されても露出度が高いから、みんなが余裕で発見してくれるかもしれない。

コンピュータ以外の趣味

ささだ
映画・本・音楽・ゲーム・スポーツなどは?
前田
最近はもう、映画館にも何年も行ってないです。音楽は聴きますけど、最近買ってないですね。ゲーム機は、うちもないです。
ささだ
スポーツも観ない?
前田
うーん、でも、オリンピックはまつもとさんよりは見ましたよ。
ささだ
特定のスポーツに思い入れはないんですか?
前田
あまりない……。昔は、アイスホッケーを結構よく見てました。
ささだ
アイスホッケーですか。やってみたい?
前田
いえいえ、観るだけですけど。

使用しているマシン

ささだ
使ってるマシンのスペックは?
前田
VAIO の Z1R/P というやつです。
ささだ
もう、それで十分?
前田
全然十分ですね。Pentium-M の 1.5GHz。
ささだ
今、デスクトップだったら、3. 何ギガ、とかいってるじゃないですか。
前田
Pentium-M 1.5GHz で足りないのは、なんか問題があるような気がするんですけど(笑)

好きな女性のタイプ

ささだ
好きな女性のタイプは?
前田
奥さんです。
まつもと
面白みも何にもない連中……。
前田
既婚者にそんな質問しても(笑)
かずひこ
タイプと結婚はまた別だったり……。
前田
問題発言だ(笑)

ruby-lang.org クラック事件を語る

ささだ
さて、Ruby に戻るんですけど、先日、クラック騒ぎがありましたよね。
一同
あれはお疲れ様でした。
ささだ
経緯は詳細なものが出てますけど、感想は?
前田
「カンベンしてくれー」っていうのと、反省するところも多々ありましたし、勉強になることも多かったです。
まつもと
でもまぁ、「カンベンしてくれー」(笑)
ささだ
サーバ管理がすごく厳重になりましたよね。
前田
まあ、前よりは。
まつもと
あれは、パッケージで一括管理しないものは、アップデートしにくい、というのが結論じゃないかという気がする。パッケージシステムじゃなくてもいいんだけど、一貫して管理できないのは辛い。
ささだ
今はそうしてるんですか?
前田
今は CVS に関してはDebianパッケージを利用していて、スクリプトで chroot 環境に反映するようにしてます。前はそれが手動だった。あと、開発用のレポジトリと公開用のレポジトリを分けるようにしました。開発用のレポジトリにcommitされた内容はすぐに公開用のレポジトリに反映されるので、ユーザから見た利便性は下がってないんじゃないかと思います。

将来の夢

ささだ
今後の展望や、将来の夢は?
前田
将来の夢は、使える処理系を作ること。それが Sather なのかは、わかんないですけど。Ruby 的には、selector namespace が入ると嬉しいな。
まつもと
だからそれはどういう仕様なの!? とか逆ギレしたりして(笑)
ささだ
それはあとのお楽しみ、ということで(笑) じゃあ、将来の夢は、言語処理系で名を馳せるということですか。
前田
別に名を馳せなくてもいいです(笑) 自分が満足できるものができたらいいなぁ。あまり、人の意見に合わせて変えたくはないです。
まつもと
うん、それでいい、それでいい。
ささだ
まつもとさんと似てますね。
かずひこ
尊敬する人だから(笑)

Rubyist の輪

ささだ
さて、前回のインタビュイーである、まつもとさんとの関係は、結局どういったものだったんでしょう?
前田
師弟関係(笑)
shugo05.jpg
ささだ
次のインタビュイーを紹介してください。
前田
かずひこさんで。
ささだ
そのかずひこさんに、何か質問などがあれば、どうぞ。
前田
Hiki *29は eval 使わないようにならないですか?
かずひこ
それは後ほど回答ということで(笑)

これからプログラミングをやりたい人々へ

ささだ
若手の方に何か一言いただけますか?
前田
私も若いですから(笑) 一緒にがんばりましょう。
ささだ
後輩の指導とかは?
前田
指導ってほどのことは。雑談とかですかね。

読者への一言

ささだ
では、最後に、読者の Rubyist の方々に。
前田
みんなでもっと Ruby を使いましょう。
ささだ
どうもありがとうございました。

おわりに

普段からRuby関係サーバ群の管理など、影で Ruby 開発を支えている前田さんのお話を伺うことができました。このインタビューの後、まつもとさんと前田さんとささだの3人で今後の Ruby の仕様について議論をしたのですが、前田さんは言語仕様について、まつもとさんを熱く説得しようとしているシーンもありました。これからも、Ruby 開発に無くてはならないキーパーソンでです。

次は、Momonga LinuxtDiaryHiki の開発で活躍されているかずひこさんへのインタビューを掲載する予定です。お楽しみに。

(インタビュー:ささだ、編集:中村 (う)・早川)

Rubyist Hotlinks 連載一覧


*1 1983 年に Microsoft とアスキーが策定した 8 ビットパソコン規格。ホビーユースを念頭に置いて設計され、家電各社が参加した

*2 グラフィックイメージを、自動的に透過処理を加えた上で、背景と重ね合わせる機能。また、そのグラフィックイメージ

*3 MSX には、スプライトを 4 つ以上横に並べると、5 個目以降のスプライトは表示されないという制限があった

*4 NeXT 社が販売していたワークステーション

*5 NeXT の OS

*6 現在はアップル社が販売している

*7 カーネギー・メロン大学で開発されたマイクロカーネル

*8 Eukleides。幾何学の祖。B.C.365〜B.C.275

*9 前田さんは、この衝突がある場合はエラーになってほしいと毎日まつもとさんに訴えているが、聞いてもらえない

*10 Apache に Ruby インタプリタを組み込み、サーバサイド Ruby スクリプトを高速に実行するためのモジュール

*11 その後反省してmod_rubyで動かすようになったらしい

*12 Ruby で書かれたサイト構築システム

*13 携帯電話用の IMAP 対応 Web メーラー

*14 高林哲氏。UNIX 系雑誌などでお馴染み。Ruby によるアプリケーション、ライブラリを多数発表している

*15 バックアップシステム

*16 メーリングリストの作成や参加などが極めて簡単に行える、画期的なメーリングリストシステム

*17 Ruby 標準添付の IMAP プロトコルライブラリ。前田さんが作成した

*18 テキスト中に Ruby スクリプトを埋め込む言語である eRuby の C による実装。ちなみに、eRuby の Ruby による実装である erb は Ruby に標準添付されている

*19 未踏ソフトウェア創造事業。ここでは、まつもとさんによる、2000 年度の「オブジェクト指向スクリプト言語Ruby次期バージョンの開発」

*20 MIT でリスコフらが開発した古典的プログラミング言語

*21 UCB との提携下で ICSI で開発されたオブジェクト指向プログラミング言語

*22 関数型プログラミング言語

*23 関数型プログラミング言語

*24 ジェネリックプログラミングの機能。C++ のテンプレートや Java の Generics に相当する

*25 エクストリーム・プログラミング

*26 XP では二人一組でペアを組んでプログラミングし(ペアプログラミング)、時々ペアを組みかえることによって、コードをチーム全体で共有する

*27 前田さんの日記には、お子さんのかわいらしい写真が載っている

*28 まつもとさんとお子さんのスナップ写真が掲載されている

*29 Ruby で書かれた Wiki エンジン実装の一つ