Ruby on Railsはどのように生まれ、発展してきたのか[後編]。作者DHH氏やコアチームが語る動画「Ruby on Rails: The Documentary」が公開
今回は「Ruby on Railsはどのように生まれ、発展してきたのか[後編]。作者DHH氏やコアチームが語る動画「Ruby on Rails: The Documentary」が公開」についてご紹介します。
関連ワード (当初、昨年、最初等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
最も有名な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氏やコアチームの発言によって紹介されています。
前編に続く後編では、Railsコアチームが登場します(本記事は後編です)。
Railsコアチームを設立
ここからはRuby on Railsにコントリビュートしてきた主要な人たちが登場します。
2005年からRailsのコアチームに所属するJeremy Daer氏。
「Rubyコミュニティにたどり着いたのは、Rubyがクールだと思ったからです。
私はプログラミング言語が好きで、いろんな言語に手を出して、いろいろ試したりしていました。Rubyを試してみたところ、とても気に入ったのです」
2005年から2007年にかけてRails Core Teamに所属していたJamis Buck氏。
「私が Ruby on Rails について初めて知ったのは、2004年の国際Rubyカンファレンスでした」
「それほど大きなカンファレンスではなく、参加者はせいぜい30人か40人くらいでした。そして、プレゼンターの一人がDavid Heinemeier Hanssonだったことを覚えています。Ruby on Railsはリリースされたばかりで、私は聞いたこともありませんでした。
彼は立ち上がって、Railsを開発した理由を、プログラマ体験をよりよくすることだと話していました。私は彼がまるでハーメルンの笛吹きのように、プログラマーをより良いエクスペリエンス、より良い方法に導いているようだったことを覚えています」
DHH氏は、Ruby on Railsのリリース後1年ほどは、自分だけがコードに直接コミットしていたと話します。
「私は電子メールでパッチを受け取りました。当時はWikiも使用していたように思います。GitHubの登場ですべてが簡単になるずっと前のことです。
私がコードへのアクセスを拡大したのは約1年後だったと思います。私たちはRailsコアチームを設立しました。このチームは基本的に、私に最も多くのパッチを送ってくれた、最高の作品を送ってくれた人々のグループでした」
反発が来ることは予想していた
Ruby on Railsは、Ruby愛好家からは、とても温かい歓迎を受けた一方で、それ以外からは複雑な反応だったとDHH氏は語ります。
「それは私がRailsのマーケティングへモードを切り替えたときに、少し生意気な物言いだったからでもあります。
しかし、Rubyのような誰も知らないプログラミング言語から新しい何かが生まれようとしているとき、それはささやきではなく、叫びでなければならないことは分かっていました。
だから私は叫んだのです。
私はある課題について、JavaとRailsでの実装の比較をして物議を醸していました。それはJava開発者の痛いところを突くものでしたから反発がくることは予想していました」
Railsは100人のチームよりも生産性の高さを実現した
Shopifyの創業者兼CEOで2004年から2008年のあいだRailsコアチームに所属していたTobias Lutke氏。
Lutke氏はRuby on Railsの生産性の高さを語ります。
「オンラインストアの開発で、他社は100人からなるチームを抱えていましたが、それでも私の方が生産性が高かったのです。
それは単純に、その当時の人たちにとってそれが難しかったためですが、まさにそのことこそRailsが単独で可能にした、実現したことなのです」
Jamis Buck氏は、当時のコアチームの素晴らしさについて言及しました。
「さらに多くのコミッターが現れるまでに長い時間はかかりませんでした。初期 Railsコミッターとしては、Marcel Molina、Scott Barron、Sam Stephenson、Michael Koziarskiなどがいました。
それは本当に素晴らしいチームでした。いままで、そのようなチームの一員になったことはありませんでした。全員が同じビジョンを持ち、世界を変えると思われるものに、これほど早い段階から取り組んでいることに興奮しました」
Railsは価値を提供している、それが重要なのだ
Ruby on Railsは当初、「スケールしない」という批判にさらされていました。Jamis Buckはそれに対して次のように答えていたと話します。
「そんなときは、Basecampを見せて『これこそ簡単なことではありませんよ』と言い返しました。私たちは1日に100万件のリクエストにではなく、人々のニーズに応えているのです。それこそが私たちが提供している価値なのですから。
結局のところ、それが重要なことではないでしょうか?」
DHH氏は、Railsがスケールしないという言説はFUD、つまりデマだと喝破します。
「Railsの悪口を言おうとする人は、スケーラビリティのことをよく持ち出します。しかしそれはRailsがメジャーになる前の話であって、Ruby on Railsを採用したShopifyやGitHub、Basecampが現在の規模になった今では、説得力を持たないものになっています」
Shopifyの創業者兼CEOのTobias Lutke氏は、Shopifyほどの大規模なサービスもRuby on Railsでできていると話します。
「個人的な経験から言えば、Shopifyはインターネットのトラフィックのかなりの割合を占めています。世界の電子商取引の約10%に相当するでしょう。
Shopifyは非常に大規模なコードで作られていますが、中味を見ればラップトップ上で今まさに生成されるRailsアプリケーションと同じフォルダー構造になっており、ShopifyのコードのほとんどはRubyで作られているのです」
そして、Ruby on Railsは単にスケールする以上に困難なこと、つまり20年にわたって優れたフレームワークであり続けてきたことを指摘しました。
「Web サービスのパフォーマンスよりもスケーリングが難しいものは何かご存知ですか? それは20年にわたって拡張され、依然として優れていると感じられる基本的なアイデアを見つける、ということです。それには先見性が必要なのです」
競争相手とされたMerbとの統合へ
2008年、Ruby on Railsは、競争相手とも見なされていたRubyのフレームワーク「Merb」との統合を行います。
Jeremy Daer氏。
「私たちには競争相手がいました。Merbは、より高速で、より軽量で、よりスリムで、処理量を減らすことでRailsに挑戦する、新興のRubyフレームワークとして登場しました。
まるでRails to Railsが目指していた、そのもののようなものでした。
そして、Rails開発者としての私たちにも火がつきました。私たちもそうしたものを望んでいたのです。それは私たちに本来の道を示してくれた競争相手であり、Merbコアチームがそれを示してくれたのです。
私たちは、Railsの内部をコンフィグレーション可能で再構成可能なモジュール構造に再設計することに多大な労力を費やし、Merbのようなフレームワークとして構築できるようにしました。
そしてRailsチームとMerb チームは話し合い、統合することにしたのです。
RailsならHello WorldからIPOまで進める
最初に登場したJason Fried氏が、あらためてこれまでを振り返ります。
「Railsのようなもの、Basecamp のようなもの、37signalsのようなもの、これらは計画的に作れるようなものではありません。事前に事業計画などを立てたからといって、作れるようなものではないのです。
これらの出来事は起きるべくして起きたのであって、けれどもそれには時間が必要だったのです」
DHH氏。
「Railsを使えば、Hello Worldからスタートして、会社が株式公開することまで進めることができます。
たった1人の開発者であっても短時間で大きな成果が得られるフレームワークであり、いままでにないほど優れたコミュニティ、フレームワーク、コードベースの品質を実現しています」
「Railsは当初から、簡単に始められるようにすることに重点を置いてきました。なぜなら、始められなければ継続できないからです。多くの人にとって始めるための最初の壁はとても高いのです。
私自身、人生で何度かプログラミングを学ぼうとして失敗して、その壁に直面しました。
Ruby on Railsはほとんど学ぶことのない非常に単純なところから始められて、そこから会社や業界でトップのプログラマーになるまでずっと進むことができます。
私はそうしたRuby on Railsの側面が大好きです。私たちが作ったこのフレームワークのおかげで、プログラミングでキャリアを築くことができた人々の多様性をとても気に入っているのです」