Rubyの名前に隠された宝石の秘密
台本
オープニング
【ジングル】 はい,どうもこんにちは.「雨宿りとWEBの小噺」始まりました.Keethこと桑原です.
この番組では,Webテクノロジーの歴史や裏側にある,ちょっとした小噺をご紹介しております.
今回のお題は「Rubyの名前に隠された宝石の秘密」です.
本題
プログラミング言語の名前って,パッと聞いただけだと,なんとなく雰囲気で付けられていそうな気がしませんか.でも実際に由来を調べていくと,ちゃんとしたストーリーがあるものが結構多くて,この番組でも何度か紹介してきました.今日取り上げる「Ruby」も,まさにそのひとつです.
Rubyというプログラミング言語,聞いたことがなくても大丈夫です.簡単に言うと,Webサイトやアプリの裏側を動かすためのプログラミング言語の一つで,特に「読みやすくて書きやすい」ということで有名な言語です.実はこのRuby,みなさんが名前を知らなくても,もう使ったことがある可能性がかなり高いんですよ.例えば,前々回にお話ししたGitHubというサービス,あれは最初,Rubyという言語で作られています.他にも,民泊サービスのAirbnb,ネットショップを作れるShopify,こういった有名なサービスの裏側でも,Rubyがずっと活躍してきました.
このRubyを作ったのは,まつもとゆきひろさんという日本人のエンジニアです.「Matz(マッツ)」という愛称で,世界中のエンジニアから親しまれています.1965年,大阪府生まれで,鳥取県で育って,今は島根県松江市に住んでいます.松江市の名誉市民にもなっているくらい,地元にしっかり根を張って活動している人なんですよね.「プログラマーが楽しく書ける言語を作りたい」という思いが,Ruby開発の出発点でした.
まつもとさんの設計哲学は「プログラマーの幸せ」という言葉に集約されます.コンピューターにとって効率がいいかどうかより,人間が書いていて気持ちいいかどうか,直感的に「こう書けば,こう動くだろうな」と思った通りに動くかどうか,というのを何よりも大事にして言語を設計しているんです.「Rubyは人間のために設計された,機械のためじゃない」と,まつもとさん自身がインタビューで語っています.効率よりも人間の気持ちよさを優先する,というのは,プログラミング言語の世界ではなかなか珍しい発想で,これがRubyという言語のファンをすごく増やした理由の一つだと言われています.
Rubyの世界には「驚き最小の原則」という有名な言葉もあります.プログラマーが予想した通りに動くのが一番いい,予想を裏切るような挙動は極力なくそう,という考え方です.ただ,これがなかなか面白い顛末をたどっていて,コミュニティの中で「これって結局,誰にとって驚きが最小なの?」という疑問が出てくるんですよね。答えは「まつもとさん本人にとって」,つまり,まつもとさんの感覚で驚かないように設計されている,というのが実態に近いという話です.Rubyを使う人がどんどん増えていくと,当然まつもとさんとは違う感覚を持った人もたくさん出てきます.そうすると「これは驚き最小じゃない」「いや自分は全然驚かない」みたいな水掛け論がメーリングリスト上で延々と続くようになって,結局この言葉自体があまり使われなくなっていった,という裏話まであります。まつもとさんの感覚を基準にするという,ある意味とても人間くさい設計哲学だったわけですね。
開発が始まったのは1993年ごろです.実はこの時期,まつもとさんは会社員として働いていたんですけど,勤務中にこっそりRubyの開発を進めていた,という逸話が残っています.ある日上司にこのことを打ち明けたら,「見なかったことにするから,続けなさい」と言われたそうです.今の感覚だと考えられないくらい,太っ腹な話ですよね.結果的にこの黙認が,世界中で使われる言語を生み出すきっかけになったわけです.勤務時間中の「サボり」が,結果的に世界を変えた,という意味では,なかなか痛快なエピソードだと思います.
さて,ここからが今日の本題,名前の由来の話です.1993年2月24日,まつもとさんは,同僚だった石塚圭樹さんとオンラインチャットをしていました.新しく作ろうとしている言語に,どんな名前をつけるか相談していたんです.候補として挙がったのが2つ,「Coral(コーラル,サンゴ)」と「Ruby(ルビー)」でした.まつもとさんが「Ruby」を推して,石塚さんは「Coral」を推していたそうです.
最終的に「Ruby」に決まった理由,実はいくつかあるんですけど,そのうちの一つがちょっと笑える理由で,「Coralより1文字短いから」というものです。CORALは5文字,RUBYは4文字。たったこれだけの差が,決め手の一つになったというのは,なんだか肩の力が抜ける話ですよね。
でも,もちろんこれだけが理由じゃありません.もっと深い理由があって,これがまさに今日のタイトルにある「隠された秘密」です.鍵になるのは,Perlという別のプログラミング言語との関係です.
当時,1990年代前半のプログラミングの世界では,Perlという言語が絶大な人気を誇っていました.Webの黎明期を支えた言語で,このPerlの名前は「Pearl(真珠)」に由来していると言われています.そして真珠というのは,6月の誕生石なんですよね.
まつもとさんは,Perlの次を目指す言語として,Rubyを位置づけていました.そこで,6月の誕生石であるPearlの,次の月,7月の誕生石にあたる「Ruby(ルビー)」から名前を取ったという説が有力なんです.「Perlの次に来る宝石」という,かなり粋なオマージュですよね.先輩言語への敬意を示しつつ,「自分たちはその次を行くんだ」という意気込みも同時に込められている,絶妙なネーミングだと思います.
このPerlという言語,実は前々回のPHPの回でもちらっと名前を出したんですけど,Perl自体の名前の由来もちょっと面白くて,作者のラリー・ウォールさんが,Practical Extraction and Report Language,つまり「実用的な抽出とレポートの言語」の頭文字から取ったという説と,聖書に出てくる「高価な真珠のたとえ話」から取ったという説の両方があるらしいんです.真珠が先にあって,その次の月の宝石としてRubyが選ばれた,というこの流れ,プログラミング言語の名前の世界って,思っていたよりずっと詩的なんだなと感じます.
もう一つの理由として,まつもとさんの同僚の誕生石がルビーだった,というエピソードも語られています。プログラミング言語の名前を,身近な人の誕生石から取る,というのも,なんだか温かい話ですよね。技術的な理屈だけじゃなくて,人とのつながりから名前が生まれている,というのがRubyらしいというか,「人間のための言語」を作った人らしいエピソードだなと思います。
名前が決まってから,実際に世に出るまでにもけっこう時間がかかっています.最初の公開バージョン,Ruby 0.95が世に出たのは1995年12月21日です.そこからさらに1年後,1996年12月25日に,正式版と言えるRuby 1.0がリリースされました.クリスマスに1.0を出したのは意図的だったとも言われていて,まつもとさんらしい遊び心を感じるタイミングです.
その後1999年に日本語の解説書籍が出版されて,2001年には英語版の書籍も出て,少しずつ世界に広まっていきます.そして決定的な転機になったのが2005年です.デンマーク出身のプログラマー,デイヴィッド・ハイネマイヤー・ハンソンさん,通称DHHさんが,「Ruby on Rails」というフレームワークを公開しました.フレームワークというのは,Webサービスを作るときの土台になる仕組みのことで,これがあることで開発のスピードが劇的に上がるんです.
このRailsが生まれた経緯もちょっと面白くて,DHHさんはもともと,37signalsという会社で「Basecamp」というプロジェクト管理ツールを作っていました.Basecampを効率よく開発するために,DHHさんは何度も繰り返し使う便利な仕組みやパターンを,アプリ本体から抜き出して整理していったんです.この「抜き出す」作業を英語で「extraction」と言うんですけど,Basecampという実際に動いているサービスから,再利用できる部分だけをうまく取り出して独立させたのが,Ruby on Railsの正体です.机上の理論から作ったフレームワークじゃなくて,実際に困った経験から生まれた,実践的な道具だったんですね.これを2004年にオープンソースとして無料公開したことで,世界中の開発者がRailsを使ってRubyに触れるようになっていきます.
このRuby on Railsが登場したことで,Rubyは一気に世界標準の言語の一つに躍り出ます.さっきお話ししたGitHub,Airbnb,Shopifyも,みんなこのRuby on Railsを使ってサービスを立ち上げています.初期のTwitterも,実はRuby on Railsで作られていました.今でこそ他の技術に置き換わっている部分も多いですけど,「あの有名サービスも,最初はRubyで動いていた」というのは,かなり多くのサービスに当てはまる話なんです。
まつもとさんの人柄も,Rubyというコミュニティの空気を作る上で欠かせない要素になっています.Rubyのコミュニティには「MINASWAN(ミナスワン)」という合言葉があって,これは「Matz is nice, and so we are nice」,つまり「まつもとさんが優しいから,私たちも優しくあろう」という意味の言葉です。作った本人の人柄が,そのままコミュニティの文化として受け継がれている,というのは,プログラミング言語の世界ではちょっと珍しい現象だと思います。技術だけじゃなくて,人柄までコミュニティに影響を与えている,というのがまつもとさんのすごいところですね。
ちなみに,まつもとさんが今も住んでいる島根県松江市は,1997年からまつもとさんが暮らしている街で,2006年からは「Ruby City MATSUE」というプロジェクトを掲げて,Rubyを軸にした産業振興に力を入れています。一人のエンジニアが趣味で書いていた言語が,最終的には地方都市の街づくりの柱の一つになるくらいのインパクトを持った,というのも面白い話ですよね。
ちょっと感慨深いなと思うのが,世界中で使われているプログラミング言語のほとんどは,アメリカとかヨーロッパ発のものが多い中で,Rubyは数少ない「日本発で世界標準になった言語」だということです.しかも作った本人は,今もシリコンバレーに移住するでもなく,島根県松江市という地方都市に住み続けて開発を続けている.世界標準になったからといって拠点を大都市に移す必要はない,というのも,まつもとさんらしいというか,「プログラマーが心地よく働ける場所で働けばいい」という哲学が,自分の暮らし方にもそのまま反映されている気がします.
まつもとさん自身は今も現役で,ネットワーク応用通信研究所という会社のフェロー,楽天技術研究所のフェロー,一般財団法人Rubyアソシエーションの理事長など,複数の立場でRubyの開発と普及に関わり続けています.一つの言語を作って終わりじゃなくて,30年以上経った今もその言語の成長に関わり続けている,というのもすごいことだと思います.
もちろん正直な話をすると,最近のプログラミング言語のランキングでは,PythonとかJavaScriptの人気に押されて,Rubyの存在感は昔ほどではなくなってきている,という面もあります.でも,GitHubやShopifyのような巨大サービスが今もRubyの上で動き続けていることを考えると,決して過去の言語というわけではなくて,「地味だけど手堅く現場を支えている」タイプの言語として,今も存在感を持ち続けているというのが実際のところだと思います。
こうして振り返ってみると,Rubyという名前には,いくつもの層が重なっているんですよね。表向きには「Coralより1文字短いから」というシンプルな理由があって,その裏には「Perlという先輩言語への敬意を,誕生石の巡り合わせで表現する」という粋な仕掛けがあって,さらにその奥には「身近な同僚の誕生石だった」という個人的なエピソードもある。名前ひとつに,語呂合わせと敬意と人間関係が全部詰め込まれている,というのは,なかなか他に例がない気がします。
そして何より,「プログラマーが楽しく書ける言語を作りたい」という,まつもとさんの一貫した思いが,名前の由来にも,設計哲学にも,コミュニティの文化にも,全部同じトーンで流れているんですよね。技術も名前も人柄も,全部が同じ方向を向いている。これって,実はそんなに簡単なことじゃないと思います。
普通,何かを大きく成功させようとすると,途中でどうしても効率とか規模とか,そういうものを優先せざるを得なくなる場面が出てくると思うんですよ.でもRubyの場合は,「プログラマーの幸せ」という,最初に掲げた一見ふわっとした軸を,30年以上ずっとブレさせずに持ち続けている.しかもそれが結果的に,世界中で使われる言語という規模の成功にもつながっている.エンジニアリングマネージャーという立場で日々チームのことを考えている身としても,これはすごく学びになる話だなと思っていて,「何を大事にするか」を最初にちゃんと決めて,それを愚直に守り続けることが,遠回りに見えて実は一番の近道なのかもしれない,と感じさせられます.
ちなみに,この「宝石」というテーマ,実はRubyという名前だけで終わっていません.Rubyには「RubyGems」という,便利な拡張機能をまとめてインストールできる仕組みがあるんですけど,その拡張機能一つ一つのことを,Rubyの世界では「gem(宝石)」と呼ぶんです.つまりRubyという宝石の名前を持つ言語の中で,追加機能もまた宝石と呼ばれている.名前のテーマが,言語の隅々まで一貫して行き渡っているんですよね.こういう細部までの一貫性へのこだわりも,まつもとさんらしいなと思います.
名前の話に戻ると,Coralという候補が採用されていたら,僕らは今頃「Coral on Rails」って言っていたかもしれないんですよね.たった1文字の差で選ばれなかった名前,でもその裏にはPerlへの敬意と,身近な人への思いと,まつもとさんなりの遊び心がちゃんと詰まっていた.こういう小さな選択の積み重ねが,結果的に世界中のエンジニアの日常に溶け込んでいく,というのが,名前の由来を調べる面白さなんだと思います.
はい,いかがだったでしょうか.今回は「Rubyの名前に隠された宝石の秘密」というテーマで,Ruby誕生の裏側についてお届けしました.
📎 https://www.ruby-lang.org/ja/about/ 📎 https://en.wikipedia.org/wiki/Ruby_(programming_language) 📎 https://studio.persol-group.co.jp/wakatejidai/220408-1/ 📎 https://en.wikipedia.org/wiki/Yukihiro_Matsumoto 📎 https://evrone.com/blog/yukihiro-matsumoto-interview 📎 https://ja.wikipedia.org/wiki/まつもとゆきひろ 📎 https://www.railscarma.com/blog/top-20-most-famous-companies-websites-built-with-ruby-on-rails/ 📎 https://en.wikiquote.org/wiki/Yukihiro_Matsumoto 📎 https://rubyonrails.org/doctrine 📎 https://type.jp/et/feature/9785/
エンディング
【エンディングBGM】 さて,そろそろ今回もクロージングです. 今回は「Rubyの名前に隠された宝石の秘密」について話しました.
次回も,Webテクノロジーの小噺をお届けします.
この番組が気に入った方は,ぜひチャンネル登録をお願いします. また,あなたからの感想やリクエストもお待ちしております! 𝕏で #WEB小噺 をつけて投稿していただくか,概要欄のお便りフォームからお送りください.
それでは,また次回の雨宿りでお会いしましょう!「雨宿りとWEBの小噺」お相手は Keeth でした.さようなら! 【ジングル】