WebアプリケーションフレームワークRuby on Railsの作者、David Heinemeier Hansson氏(以下、DHH)のインタビュー後編です。
伽藍とバザールとレール
弾:Railsがもっと広いエリアで使われるには、あるいはRubyでは限界があるかもしれません。ほかの言語で“○○ on Rails”を作る予定は?
DHH:その計画はありません。他の言語版のRailsを作るくらいだったら、Rubyを啓蒙したほうがいい。これからもRuby on RailsでRubyの良さを証明していきたいと思います。
弾:アーキテクトで必要なものは何だと思いますか?
DHH:「アーキテクト」って言葉を使ったら負けだと思ってます。アーキテクトってとても怪しい言葉。何で怪しいかというと、僕自身は優れた建築というのは、設計だけでは絶対にできないと思ってます。実際にモノを作ってみてはじめて善し悪しがわかります。設計士よりも、大工でいたいのです。
弾:では、もし伽藍を発注されたとしたら? でっかい寺院のような大きなものを作るときもアーキテクトは必要ないの?
DHH:そもそもソフトウェアではそういったものを初めから作るべきではないのではないかと思います。ソフトウェアというのはあくまでも小さなものを作って、それらの組み合わせでやるべきだと。
弾:でも、伽藍を建てないと金を出さないという発注者も多いですよね?
DHH:そういう人たちは歴史から学んでない。伽藍を建てると壊れるというのは、歴史を見ればわかると思います。
弾:その歴史から学んでいない人たちがお金を持っているように見えるのはなぜ?
DHH:彼らは10個やって1個成功すれば元を取れるから。そういうベンチャーキャピタリストというのはそもそも勉強の必要もないですよね。
ロードマップなんていらない
弾:Railsの、今後のロードマップは?
DHH:ロードマップはありませんし、ロードマップというものは信じてないんです。ロードマップというのは賢くない。今ある問題を少しずつ解決することで前に進んでいけばいいと考えます。
弾:でも、それでいくとたとえばハードウェアは? 今、工場1つ建てるのには2000億円ぐらいかかる。こういうものもロードマップはいらないのかな?
DHH:確かに。でも間違いなのは、そういったハードウェアでうまくいったモデルをそのままソフトウェアの世界にも持ち込むことじゃないかな。ハードでうまくいったからってそれがソフトに通じると思ってることが多過ぎ。
弾:じゃあ、ハードでもソフトでもないものは? ウェットウェア、つまり生物です。
DHH:それこそ、インクリメンタルな開発の最高の成功例。進化の世界にロードマップってないよね。
Convention over Configuration
弾:確かに、進化ってありあわせのものを使うよね。
DHH:そう。生物はConfiguration(設定)をいじりまくるのではなく、Convention(規約)をそのまま援用している。いろいろ設定を変えてうまくいくものだけ拾い出すより、きちんと動く設定を少しずつ変えるほうがうまくいくんだ。
弾:Railsを開発する前はどんなConventionを持っていたんですか。プロトタイプのようなものはあった?
DHH:最初はRailsをPHPでやろうとしたんだ。でも、できなかった。PHPはそこまでの抽象化ができない。それでRubyを使ったのだけれど、Rubyを使うことによって、抽象化は言語の側で持たせて、整合性(Consistency)をフレームワーク側で確保することができた。
弾:だからPythonが…。
DHH:嫌い。Pythonの場合、逆に言語の一貫性が高いので、フレームワークのほうで抽象化をやらなくちゃいけない。そうなるとフレームワークのほうが数が多くなってしまう。それは逆だと思う。
Ruby off Rails
弾:ありがとうございました。今回の東京訪問で、Rubyカンファレンス以外はどうしてますか?
DHH:秋葉原を見て回ったり、原宿を見て回ったり、東京以外にも、京都にも行けたらなと思っています。やっぱり日本の美しいところというのは小さいものにも美を見いだすこと。これはRubyにも通じることだし、Rubyが日本から来たことも僕にはとっても自然なことに思えます。