長い開発の末、Ruby on Rails 2.0がついにリリースされました。InfoQでは、Ruby on Railsを作った人でもあり、最大の提案者でもあるDavid Heinemeier Hansson氏と話す機会をもちました。
David Heinemeier Hansson氏は、WebアプリケーションフレームワークのRuby on Railsを作った人として広く知られています。Railsは、37signalsで作られる全てのアプリケーションの基盤ソフトウェアとして利用されています。彼は、コペンハーゲン(デンマーク)で、1979年に生まれました。彼は、2005年にコペンハーゲンビジネス学校を卒業し、その後、シカゴ (USA)へ引越しました。彼は、Basecamp、Highrise、Backpack、Writeboard、Ta-da Listなどをもつ37signalsのパートナーです。彼のRailsに関する作業に関して言えば、David氏は、2005年オスコンで、 GoogleとO'Reillyからベストハッカーを獲得しました。さらに、2006年には、素晴らしい製品であるとしてRails 1.0がJolt awardを受賞しました。
Rob Bazinet (以下、RB): Rails 2.0.1がリリースされている今、チームで成し遂げたことについて、どのように思っていますか?
David Heinemeier Hansson (DHH): 一緒に開発をすることができた関係者の人たち全てを、とても誇りに思っています。数多くの人たちによって使用されるフレームワークのリリースのために、世界中から数百人もの人たちと一緒に作業することができたということを考えると、変わっているように思われるかもしれません。しかし、実際にやり遂げました。Ruby on Railsのような大スケールなオープンソースプロジェクトでは、ベストなリモートコラボレーションや、プログラマーが時間・国・言語の壁を越えて一緒に作業するといったことをしっかりと行う必要があります。
最終製品は、とても素晴らしいものとなりました。Rails 2.0は、(数百の小さな修正が真に意味するところは何であるか? という意味で、)言葉では言い表せないくらいに洗練されたものとなりました。しかしながら、実際に使って頂ければ、その素晴らしさがはっきりと分かると思います。
RB: このプロジェクトの開始以来、あなたとRailsコミュニティ作ってきたものを冷静にみたとき、今回の内容が大きく変わったと考えますか? (その結果、)開発者全員で、製品、トレーニング、本、カンファレンス、他のコミュニティのサポートとなりますね。
DHH: そのようなことは、決してありません。もし、私がRuby on Railsで仕事をすることが好きならば、他の人たちもおそらく好きだろうと思うからです。私のプログラミングし好と美学は、どこにも存在しない唯一のものではありません。多くの人たちも、私がすることと同じことを良いことだと思うでしょう。しかし、常識外れともいえる急激な変化や、私たちがRailsで見てきた信じられないくらい短期間でのびっくりするような取り込みがあったことも事実です。
おそらく、私は少し冷笑的だったと思います。何故なら、本職ではないと考えている人たちによって動いているオープンソースプロジェクトが、今回のような流れを作れるだろうとは思っていませんでしたので。しかし、当然のことながら、それが実現して本当に嬉しいです。
RB: 数年後も、Railsが発展し続けると思いますか? あなたに今後の予測を聞くのはフェアではないですが、私は、あなたがRailsをどのように進化させたいと思っているのかについてあれこれと思いをめぐらしています。
DHH: 私は、私たち自身の問題を解決して、皆と一緒にそれらを共有し続けたいと思っています。より多くの人たちに何らかの形でRailsを気に入ってもらおうという漠然とした想いの中で、私たちは自身の展望と考えを投げ出さないようにしたいです。全ての人がRailsを使う必要があるというわけではありません。それは、技術的なフレームワークであると同時に、特色や流儀をもっています。皆が同じレストランや同じデザイナーの洋服を着るのを好むのであれば、それはとてもつまらないことだろうと思います。Railsが興味あるものであり続けるためにも、選択肢や違いが必要なのです。
私たちが、今の勢いで電車に乗り続けることができるのであれば、私にとってとても幸せなことです。
RB: 最新版のリストは、かなり大きなものとなっていますが、以前のバージョンと比べ、2.0では非常に大きな変更があったことを考えると、Rails 2.0への乗り換えはどのくらい簡単でしょうか? いくつかの機能がフレームワークの一部からgemsへと移ったことを含め、やり方がいくつか変更になったことについてもお聞かせ下さい。
DHH: 私たちは、Rails 1.2.xから2.0に移ることで、多くの痛みを伴わないようにするために多くの時間を費やしました。Rails 1.2.6では、2.0への準備ができるような警告が含まれています。あなたのアプリケーションがきちんと動作しているのであれば、2.0への移行は大したことではありません。そして、プラグインとなったすべてのものについては、アプリケーションから離れた単一のコマンドとなります。
RB: バージョン1.2.6から2.0になるにあたり、今回のリリースでのRailsフレームワークの変更はどのようなものがありますか? また、今回の2.0への変更をRailsのメンバーに知らせてから、何か変化はありますか?
DHH: 通常、メジャーバージョンの更新は、後方互換性が保証されないことを示します。私たちがメジャーバージョンを上げたのは、そういった理由からです。きれいにしたいと思えるような粗雑なものもあったので、2.0への移行は良い方法でした。
RB: 私は、Railsのコードベースが最後のリリースの54Kのコードから94Kに増大したと聞きました。これについてはどのように思われますか? フレームワークをシンプルなものにし続けようとするときに、これは懸念となりますか? おそらく、これは関係のある話ではありませんが、あなたの関心事を知りたいのでお聞きします。
DHH: 私は、ライン数が増えるにつれて、Railsが様々な点でよりシンプルになったと思います。独自のことを行わない限り、それを意識する必要がないという点において、より多くの関係が抽象的なものとなりました。それが、コードの量が増える結果となりました。コードの行数自体は、私にとって大した意味を持ちません。それによって表現することのできるものの方がより重要です。よって、あなたが、ある機能の一部を100行書くべきところ10行で書くことができたならば、簡潔さという点において大きく進歩したと言えます。それが、何故RubyがJavaやC#よりも楽しく仕事ができる言語であるかという問いに対する理由のひとつです。
RB: Rails 2.0で最も重要な機能と考えるものについて教えてください。また、開発者が一番胸を踊らすような機能は何ですか?
DHH: 私は、RESTfulアプリケーション開発に対して力を注いだことが、Rails 2.0の最も大きなテーマであると考えています。それは、多くの機能として表れています。routes.rbでのmap.resource(s)によるマッピング、respond_toによるマルチビューのサポート、HTTPベーシック認証などがあげられます。本当にRESTfulなやり方でWebアプリケーションを開発するという意味で、満足のゆくパラダイムシフトとなっています。それを理解し、正しく評価するまでには、少し時間がかかるかもしれませんが、始めたいなら単にクリックするだけで大丈夫です。
私は、RailsがTwitterのように多数のユーザーをもついくつかの店のようなものだと思います。しかし、・・・
RB: 新機能や機能拡張で、エンタープライズや大規模アプリケーションのためのスケーラビリティについて考慮している点はありますか?
DHH: アプリケーション開発をよりシンプルにするための機能は全て、より大きなアプリケーションにおいてさらにより大きな発展をもたらすことになるでしょう。あなたが20%アプリケーションのために必要とされる線の数を減らすならば、1000行のアプリケーションであれば、単純に200行、20000行のアプリケーションであれば4000行の削減となります。
スケーラビリティに関して言えば、何も変える必要がなかったので、何も変えませんでした。あなたのアプリケーションをより多くのユーザーが利用するために、より多くのハードウェアを線形に加えることが常にできます(スケーラビリティの定義)。Railsのパフォーマンスのために、本当に素晴らしい改善をいくつか行いました。一方で、個々のサーバーそれぞれが、より大きなロード処理を行えるようになりました(キャッシュコードの多くを最適化)。
さらに、(キャッシュのメリットを最大限に引き出し、)Railsアプリケーションの体感スピードを改善するために、HTTPの使用法を改善しました。
RB: RailsがRubiniusもしくはRuby 1.9といったプロジェクトの恩恵を受けている点についてはどのように感じていますか?
DHH: 誰でも、自由な速さを望むものです。私にとって、それが必ずしも必要なものではありませんが、明らかに喜ばしい贈り物であると言えます。
RB: マイクロソフトはIronRubyの開発を行っているので、近い将来、私たちは.NET上でRailsを見ることができるかもしれません。それは、 JRubyやJava VM上で動作するRailsと同じものです。私にとって、このことはRailsが.NET やJavaで標準化されたエンタープライズへ進出するための良い道のりであるように思えます。これをRubyとRailsにとっての勝利であると見ますか? そして、それをどのように考えていますか?
DHH: Railsのように、最新の開発フレームワークとして多くの人に知られているものが、メインストリームの環境から外れて駄目になるということはおそらくないでしょう。願わくば、全ての環境に組み込まれることを望みます。Ruby on Railsが、既存のエンタープライズのインフラストラクチャで動作するということは、私のとっては良いことだと言えます。
RB: Davidさん、本日はRuby on Railsの最新版リリースに関する話をするためにお時間を割いて頂き、ありがとうございました。
原文はこちらです:http://www.infoq.com/articles/ruby20-dhh-interview