Ruby on Railsはどのように生まれ、発展してきたのか[前編]。作者DHH氏やコアチームが語る動画「Ruby on Rails: The Documentary」が公開

2024年1月23日

最も有名なWebアプリケーションフレームワークの1つである「Ruby on Rails」は、もともと37signals社が社内向けに開発したフレームワークでした。

現在ではGitHubやShopifyなど大規模なWebサービスを支えるRuby on Railsも、登場初期には「スケールしない」という批判にさらされ、また競合となるフレームワークが登場するなどの経緯を経ています。

こうしたRuby on Railsのこれまでを、作者であるDavid Heinemeier Hansson(以下、DHH)氏や関係者が振り返る動画「Ruby on Rails: The Documentaryが、昨年(2023年)11月に公開されました。

Ruby on Railsがどのような経緯で開発され、発展してきたのか。DHH氏やコアチームの発言によって紹介されています。この記事では、その内容をかいつまんで紹介していきましょう。

Ruby on Rails: The Documentary

37Signals共同創業者兼CEO Jason Fried氏。

Ruby on Railsの作者であるDHH氏との最初の出会いを振り返ります。

fig

「1999年か2000年頃、私は37signalsというWebデザイン企業を経営していました。2人のビジネスパートナーとWebデザインを受注していたのです」(Fried氏)

Fried氏は本業とは別に再度プロジェクトとしてオンライン書籍データベースの開発に取り組んでいました。開発はPHPで行っていたものの、Fried氏はプログラミングでつまづきます。

当時はまだStackOverflowのような技術的な質問に答えてくれる掲示板などなかった時代。Fried氏はブログに「誰かこの問題を解決する方法をご存じですか?」と書き込みます。

するとデンマークからメールが届きます。メールを書いてきたのがDHH氏でした。

fig

「私は(37signals社の)Signal vs. Noiseというブログを以前から熱心にフォローしていました」とDHH氏。

「ブログで彼の質問を見て、私は『おお、この答えを知っているぞ!』と思いました。 彼への返事は、私が彼らのブログを読んで楽しんだり学んだりしてきたことへのお返しです。私は彼がPHPでやりたいと思っていたことについての説明を詳しく書きました」

その後もFried氏とDHH氏のプログラミングのやり取りは続きます。そしてある日、Fried氏は全体のコードをDHH氏に見せたところ、DHH氏が「これはひどい、最初からやり直したほうがいい、私にやらせてください」と発言。

Fried氏とDHH氏のパートナーシップは、こうして始まったと説明されました。

プログラミングの学習に2度失敗したDHH氏

DHH氏は、初めてコンピューターを手に入れたのは1985年、6歳のときだったと語ります。

fig

「プログラミングに初めて触れたのは、ビデオゲームのプログラムを雑誌から入力したときでした。しかし入力が下手だったのか、プログラムのうち数本しか動かせませんでした。

10歳か11歳、12歳くらいのときにもう一度プログラミングを学ぼうとしました。そのとき使ったのはEasy AMOS と呼ばれるプログラミング環境でしたが、私にとっては簡単ではなく、私はまたしてもプログラミングの学習に失敗しました」

「1995年にHTMLと出会って、何かを実際に作れるチャンスがあると思えるようになり、そして1999 年に私は他のプログラマと一緒にPHPでゲームのWebサイトの制作を始めて、初めてうまくできました。

当時私は20歳で、プログラミングを学ぶのは3回目ですが、ようやく理解できたのです」

DHH氏の報酬はコンピュータ機器

Fried氏とDHH氏のパートナーシップが始まった後、二人はシカゴで実際に会い、いくつかのクライアント向けのプロジェクトに取り組むことになりますが、忙しくなってきたことでプロジェクトをきちんと管理するツールが必要になります。

fig

そこで、そのためのプロジェクト管理ツールを自分たちで作ろうとしたのです。2003年に開発が始まる「Basecamp」がそれでした。Fried氏はBasecamp開発のためにDHH氏に報酬を払うことにします。

Fried氏。「当時の彼は『お金は要らない、ラップトップが欲しい、コンピューター機器が欲しい』という感じでした。というのも、デンマークに住む彼にとって最新のApple製品の入手は容易ではなかったようです。

そこで彼が米国に来るたびに、これはおそらく違法なのですが、私は彼にラップトップを与えたり、彼がその時に必要としていたものを何でも与えました。それはBasecampに関する報酬でした」

fig

Rubyとの出会い

そしてここでDHH氏はRubyと出会うことになります。

「私はちょうどその年の初めにMartin Fowlerの著作を通じてRubyを知りました。また、Dave Thomas はプログラミング雑誌でプログラミングの概念をRubyで説明していて、これは本当に興味深いプログラミング言語だと思いました。

まず第一に、私はRubyをそれまで知りませんでしたが、その時点で私はWebに何年も取り組んでいて非常に興味をそそられました。またRubyは日本から登場したことも、とても興味深かったです。

Rubyのコードはまるで疑似コードのように見えました。つまりプログラミングの概念を説明しようとするときに、正確に正しい構文ではなく、英語に近い概念的なコードを書いてしまうことがあります。Rubyはまさにそう見えました。そしてそれは本当に興味深いことでした」

「Rubyの好きなところは、最小限のあいまいさでHello WorldをWebに公開できるPHPの即時性と、非常に洗練され、よく考えられた一貫したオブジェクト指向プログラム言語が組み合わさっているところなのです」

Ruby on Railsの誕生

こうしてDHH氏はBasecampの開発でRubyを試すことにしたのです。

「まず簡単なことから始めました。2週間の猶予期間を自分に与え、RubyでレンダリングされたHTMLを画面に表示できるかどうか、データベースと通信できるかどうか、これらを簡単に実現できるかどうかを試したのです」

これがRailsの始まりでした。

「そこから6カ月から7か月かけて私たちはBasecampを開発し、開発の過程で私はRailsを生み出しました。あらじめ何らかのデザインがあったわけではなく、大きなWebフレームワークが欲しかったから作ったのです」

2004年2月にBasecampがリリースされた後、DHH氏は6カ月かけてRuby on Railsの内容やドキュメントを精査し、完成させた上でリリースしましました。

そしてRuby on Railsが話題になると、DHH氏は新たな悩みを持つようになります。それはRuby on Railsに対してさまざまな要求が寄せられるようになったことです。

「自分が作ったものがこれほどの盛り上がりを見せているのを見るのはとても嬉しかったです。一方で、私はRailsに込めたビジョンの完全性を非常に大切にしていました。

Railsに興味を持つ人が増えると、Railsの方向性を指示しようとする人も出てきます。そうなると物事はコントロールを失い、他人からの貢献に喜んで時間を費やしているうちに、『ノー』ということが難しくなります。誰かに対して『ノー』と言ってしまうと、意見が衝突してしまうのです。

しかし私はRailsに望まない多くの意見に『ノー』と言い続けました。

カナダで行われた、あるカンファレンスでの有名なスライドがこれです」

fig

「私はRailsに取り組みたいからそうしているのであって、問題を解決し、フレームワークの整合性を守っていきます」

「オープンソースは商業的な関係ではなく、何をすべきか、Railsが取るべき方向性を私に指示することはできないのです。判断は私自身がしていきます。もちろん、フィードバックは受け付けています。

そしてRailsが強存在するのは、何千人ものコントリビュータのおかげなのです。そうした人々には、私は躊躇せず『イエス』と答えていました」

≫後編に続く。後編ではRailsコアチームに所属していた開発者が、これまでの経緯を振り返ります。

あわせて読みたい

プログラミング言語 Rails Ruby




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本