InfoQ

Articles

David Heinemeier Hansson氏とRails2.0について語る

作者 Robert Bazinet 投稿日 2008年1月7日 午前1時15分

コミュニティ
Ruby
トピック
Ruby on Rails,
REST
タグ
Ruby on Rails

長い開発の末、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
ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

インタビュー: Emmanuel Bernard氏にBean Validation仕様について聞く

Bean Validationフレームワークの初期ドラフトに関する以前の記事に続き、InfoQは専門家グループが求めているコミュニティの関与と提案について理解を深めるため、Emmanuel Bernard氏と対談しました。

ポーカーに学ぶ、ソフトウェア開発のレッスン

ポーカーは他のトピックにも広く適用できるような数少ない教えを私にもたらしてくれたと信じています。実際私はソフトウェアを開発すればするほど、これら二つの仕事は非常に似ていると言う確信の度合いを深めています。

InfoQがBPEL4PEOPLEの代表と対談

恒例の「バーチャルパネルセッション」で、InfoQは新しいOASIS BPEL4People技術委員会の代表と対談をし、この作業が何故必要であるかについて彼らのフィードバックを得る機会を得ました。

CLR上でのドメイン特化言語の構築

ドメイン特化言語は最近非常に人気が高まっている話題です。これは恐らく、Rails現象に起因していると考えられます。Railsの人気と、Railsにおけるドメイン特化言語(以降、DSL)の大規模な使用は、DSLに対する広範な関心を呼び起こしました。

Rubyのデバッガを調査

Rubyには、Rubyコミュニティの内外で広く知られている誤解が一つある。Rubyにはデバッガがないという誤解だ。しかし、Rubyにデバッガが無いということは誤解なのだ。実際のところ、Rubyにはデバッガ用のツールがある。

改善、成功と失敗: 中国でのスクラム導入

InfoQ Chinaは中国でスクラム(Scrum)がどのように導入されているかに関する調査を行いました。私たちはこの記事のために5つの事例をピックアップしました。これらの事例は、異なるさまざまな会社によるもので、異なるプロセスが利用され、異なる結果が生じたものです。

洗練されたサービス契約による見事なスケーラビリティ

Udi Dahan氏のチームが、サービス契約を利用した2度の失敗を避け、複数の側面でのスケーラビリティに対処しています。

塹壕より Scrum と XP

Agileを始めるときは、とても分かりにくいです。一体どこから手をつければいいのでしょう?この物語はそんな皆様の一助になれば幸いです。本書は、スウェーデンにある、とある40人ほどの会社で、どのようにAgileとXPを実行したか、プロセス改善を行ったかを記しています。