Rubyの生みの親であるまつもとゆきひろ氏(撮影:田所千代美)

HuluやUber、Airbnb、GitHub、日本国内でもクックパッドや食べログ、マネーフォワードなど数多くのウェブサービスで使われている、日本生まれのプログラミング言語「Ruby」。日本を超えて世界中の多くのサービスの根幹を支えてきたRubyが、今年で誕生から25周年を迎える。
Twitterの「#ruby25th」というハッシュタグには、世界中からお祝いのメッセージが寄せられている。「Rubyがプログラミングの面白さを教えてくれた」「RubyのおかげでWebサービスをつくることができた」「Ruby made me fall in love with coding(訳: 私とコーディングが恋に落ちたのはRubyのおかげ)」。
なぜ、プログラミングツールであるひとつの言語がここまで愛されてきたのだろうか。Rubyの生みの親であるまつもとゆきひろ氏にインタビューした。

Rubyはなぜ多くの人々から親しまれてきたのか

池澤 あやか(以下、池澤):「#ruby25th」には、世界中からたくさんのお祝いメッセージが寄せられていて、Rubyの愛され具合が伝わってきました。生みの親ご本人にお聞きすることではないかもしれませんが、なぜここまで多くの人々から親しまれてきたのでしょうか。


過去の連載一覧はこちら

まつもと ゆきひろ(以下、まつもと):ありがたいことに、Rubyはプログラミング初心者にも上級者にも使っていただいています。しかし、当初はあくまで自分のために作っていたので、決して初心者向けにつくったものではありません。私も使いたいので、上達したらいつか卒業してしまう「補助輪」のような言語は考えていません。

それでいて、初心者にとって使いやすいというのは、実用性と同時に「気分の良さ」も重視したからだと思います。Rubyは「気分の良さ」を失わないよう、なるべくシンプルな構文や規則で書けるようにしています。この「気分の良さ」が愛される理由に繋がっているのかもしれません。

池澤: 最初に勉強したRubyがずっと使えるというのは、ユーザーとしても嬉しいですね。

まつもと:Rubyのコミュニティには、初学者から上級者までさまざまなレベルの人がいるので、一緒に学ぶ仲間もいれば、わからないことがあれば教えてくれる人もいます。このコミュニティの豊かさも、Rubyが愛される理由のひとつかもしれませんね。

池澤:Rubyも誕生して四半世紀経ち、ひとつの節目を迎えました。

まつもと:25年というととても長い期間に感じますが、プログラミング言語は寿命が長いため、これでもRubyは若造です。たとえば、1954年生まれのFORTRANも未だに使われていますからね。

何をもってRubyの誕生とするかは難しいところですが、Rubyでは「Rubyという名前がついた日」を誕生日と定めました。


なぜRubyという名前にしたのか(撮影:田所千代美)

なぜRubyという名前にしたのかについてもよく聞かれるのですが、当時のRubyが「次のPerl」を目指していたことから、Perl(真珠・Pearl)にならって宝石の名前から名付けました。最終候補に残っていたのが「Ruby」と「Coral」。Coral(サンゴ)は、最後の文字が「Language」の「L」なので、頭文字をとった略語が作りやすそうでいいなと思っていましたが、Rubyの方が短くて美しくて高級という理由で、こちらを選びました。

当時は、インターネットが発達していなかったので、グーグラビリティを気にしなくていい時代でもありました(笑)。

元々趣味でつくり始めた

池澤:つくった当初から、ここまで多くの人に使われたり、大きなサービスを支えるようになったりすることは想定していなかったと思います。初めは、どんなものをつくりたいと思っていたのでしょうか。

まつもと:元々趣味でつくり始めたので、最初から大仰なことは考えておらず、どんな言語だったら自分が満足するかということだけを考えていました。

当時は、所属していた会社の社内システムをつくる仕事をしていたのですが、バブルが崩壊して、おカネを直接的には稼げないこのプロジェクトはキャンセルとなってしまいました。私はメンテナンス要員として会社に残されることになったのですが、新規開発が禁止だったこともあり、暇だったので、趣味で何かつくろうと考えた時、ちょうど高校生の頃から関心のあったプログラミング言語づくりに挑戦してみようと思い立ちました。

どんな言語をつくろうか。当時仕事ではC言語のようなあらかじめ機械語に翻訳するタイプのいわゆるコンパイラ言語と呼ばれる言語を使っていたのですが、すでに強豪がいるこの分野では勝ち目がないと思ったので、逐次プログラムを解釈しながら実行していくインタプリタ型のスクリプト言語を選びました。

そんな感じで、本当に大したことは考えず、気軽な気持ちでつくり始めました。

池澤:25年前というと、スマホも誕生していない時代です。25年間、IT業界を中心に世界が大きく変化してきましたが、この変化について、どうお感じになりますか。

まつもと:25年間、IT分野は大きく発展しましたが、Rubyの根幹にかかわる環境は意外と変わりませんでした。

たとえば、Rubyをつくり始めた当初のOSはUnixでしたが、現在サーバーとして広く使われているOSもUnixをベースとしたLinuxです。macOSもUnixベースですし、最近はWindowsすらUnixに近づいてきています。CPUも未だにインテルが強くて、たまにARMを見かけるといった具合で、あまり変わっていません。

逆に変わってしまっていたら、ここまで発展させることができなかったかもしれませんね。

ただ、根幹にかかわる以外の部分は大きく変わりました。コンピューターの性能がよくなったり、値段が安くなったりしたことに加えて、最大の変化は、インターネットの普及ですね。Rubyはインターネットの普及期に生まれた言語だったので、インターネット普及の波、特にWWW(ワールド・ワイド・ウェブ)普及の波にうまく乗れたことが、Rubyが普及した一番の要因だと思います。

WWWの通信には、HTTP(ハイパーテキスト転送プロトコル)というプロトコルが使われているため、テキスト処理が得意なRubyのようなスクリプト言語が活躍することになったわけです。

それに加えて、コンピューターが1台で完結する世界に比べると、複数のコンピューターが繋がり合うインターネットの世界はより複雑な処理が必要です。幸い、Rubyはとても柔軟性の高い言語だったので、そういった複雑なものを扱うことに適しています。現在多くのサービスで利用されているWebアプリケーションフレームワークであり、Rubyが普及するきっかけにもなった「Ruby on Rails」も、Rubyの持つこうした性質ゆえに生まれたものなのだと思います。

将来を予測して設計したわけではなかったので、Rubyは偶然に偶然が重なって、ここまでこられたということになりますね。

普及を確信したのは…

池澤:Rubyの普及を確信したのはいつごろですか。

まつもと:1995年にRubyをリリースしてから2年くらい経ち、出版社から「Rubyの本を書きませんか」という話がきました。

当時は会社の仕事もありましたし、空いた時間は趣味でプログラムを書いていたこともあって、原稿はなかなか進まず、それから2年後の1999年にようやく『オブジェクト指向スクリプト言語Ruby』を出版しました。

本来、技術書はニッチなのでなかなか売れないのですが、この本はなんと1万5000部以上も売れました。こんなにたくさんの人が興味を持ってくれているならいけるかもしれないと、ここで初めて実感したのを覚えています。

池澤:Rubyの発起人はまつもとさんですが、ここまでRubyが成長できたのは、コミュニティの力も大きいのではないかと思います。このコミュニティはどうやって成立してきたのでしょうか。

「コミュニティ」の存在はオープンソース時代最大の謎

まつもと:Rubyの発起人は私ですが、私以外にも「コミッター」と呼ばれるRubyの開発者がいて、更にRubyを使うユーザーがいて、Rubyのコミュニティが形成されています。


Rubyが成長できたのは、コミュニティの力も大きいのではないかと思います(撮影:田所千代美)

このコミュニティは、私が仕掛けたというわけではなく、Rubyのことが好きな人が自然に集まって、いつのまにか成立していました。

この「コミュニティ」の存在は、実はオープンソース時代最大の謎と言われています。

当然ですが、オープンソースソフトウェア(OSS)を開発するだけでは稼げませんからね。最近こそ、企業もOSSを使うようになってきたので、仕事の一環でコミュニティへ貢献できたり、企業自体がOSSのスポンサーになったり、貢献してきたことが就職や転職に有利に働いたりするようになってきましたが、以前はそれすらなかったので、大学の研究もしくは、技術的好奇心でやっている人が大半でした。

池澤:コミッターの方々とは、どのような共同開発をされてきたのでしょうか。

まつもと:今ならGitやCVS、Subversionのような便利な共同開発ツールがありますが、25年前にはもちろんそういったツールはありません。

なので、NetNews(今で言う掲示板のようなもの)に直接プログラムを貼りつけていました。サイズが大きすぎて一度では貼りきれないので、48個くらいに分かれた圧縮ファイルにして(笑)。

それをツールを使って元のプログラムに戻して、開発して、また掲示板に貼り付けるというスタイルで共同開発を行っていました。

それから5年ほど経ったころにCVSを採用して、そのあとはあまり現在のスタイルと変わらず、共同開発ツールを利用して開発を進めています。

池澤:25年間、コミュニティを維持し続けられた理由はあるのでしょうか。

まつもと:Rubyはオープンソースなので、私が人を雇うことはできません。無償で協力してもらう他ないので、「ずっとRubyを好きでいてくれる」保証もありません。他に面白い言語があればそちらへ行ってしまうかもしれません。

優秀な人にRubyコミュニティに居続けてもらうために、「技術的好奇心をくすぐるような課題を見つけること」も私の大きな役割だと感じています。

開発初期は簡単な課題もたくさんありましたし、開発を始めて10年くらいは私が中心となって開発していたので、特にそういうことも気にせずやってきたのですが、Ruby on Railsが出現したくらいからは、面白い技術課題を見つけることを意識して行うようになりました。

たとえば、2020年にリリース予定のRuby 3.0では、「Ruby 3x3」をRuby 2.0より3倍早くすることを目標に掲げています。もちろんこれまでも改善を重ねてきたので、いきなり3倍はかなり難しい目標だと思います。

目標を掲げた当初は「できるも八卦、できぬも八卦」くらいの気持ちでいたのですが、最近になって「MJIT」という技術を使えばできるかもしれない、という可能性が見えてきました。

このように、いい目標があれば、開発を加速させることができます。なので、いい目標を立て「やるぞ」と宣言することは大切なのです。

このときの例えでよく使うのは、ケネディ大統領のアポロ計画です。ケネディ大統領は「1960年代のうちに人類を月に送る」という専門家ですら無理だというような目標を提示しましたが、1969年にはアポロ11号を月面へ着陸させることに成功しました。

このケネディ大統領の「月へ行く」という目標のような、今のままでは難しいけど、頑張ればできないこともない目標を持つことが、OSSの開発の現場にも必要だと思います。

Rubyだけで生活できるようになったのは…

池澤:「フリーのソフトウェアを開発して生活する」という働き方は、いままでなかった働き方だと思います。いつごろからRubyだけで生活できるようになりましたか?

まつもと:受託開発をやめて、オープンソースの仕事をメインにできるようになったのは、かれこれ10年くらい前からですね。

でも受託開発の仕事をしていた頃から、比較的のんびりさせてもらっていたと思います。たとえば、サーバー担当だった当時の同僚に頼んで、所属していた会社のサーバーの一部を間借りして、こっそりRubyを公開させてもらっていたりとか、別の会社では、合計約40分間の通勤電車の中で会社の仕事をすべて終わらせて、業務時間はずっとRubyの開発を行っていたりとか。当時はインターネットが貴重だった時代で、業務時間なら会社のインターネットに繋ぐことができたので(笑)。のどかな時代でしたね。

池澤:2020年から、日本の小学校でもプログラミング必修化が始まります。まつもとさんは、プログラミングから子どもたちがどのようなことを学んでほしいですか。

まつもと:正直、私は学校教育にプログラミングは向かないと思っています。問題としては、幼い頃からプログラミングに触れてきた子とそうでない子がいるため成績がつけにくいことと、短期的にはプログラミングの楽しさを教える先生がいそうにないことが挙げられます。

プログラミングを長く続けている人の多くは、プログラミングが楽しいから続けています。なので、必修化するのであれば、「プログラミング教育」ではなく、「楽しさ」を教える「プログラミング体験」であってほしいです。

教育によって、プログラミングが嫌いな子を増やすより、体験によってプログラミングに興味を持った子を発掘し、別途、部活、少年団、地域コミュニティなどで、そういった子が伸びる環境を用意するほうが有意義ですよね。

今後のRubyは

池澤:IoTの普及やAIの台頭など、今後も大きく世の中が変わっていくなかで、Rubyはどういったものになっていくのでしょうか。

まつもと:これから時代が大きく変化しても、OSやCPUなど、Rubyの根本を揺るがすような変化はないと考えています。しかし、システム・アーキテクチャは変わっていくでしょう。たとえば、IoTが普及していくと、小さなデバイスでひとつのシステムを構成するようなアーキテクチャがメインストリームになってくるかもしれません。

未来は予測不可能なものですが、このような時代の変化に合わせて、Rubyも臨機応変に対応していきたいと思います。

一方で、ユーザーが離れてしまうような劇的な変化は避けたいとも考えているので、文法自体は変えることなく、基本的には内部構造の変化で吸収したいと思っています。

これから25年先のRubyにとってのいちばんのボトルネックは、そのころには私も77歳なので、私自身がこの世にいない可能性があるということですね。幸いなことに、RubyにはRubyを開発してくれるコミッターはたくさんいるのですが、言語のデザインは未だに私がしているので……。

後継者も一応なんとなくは考えているのですが、合議制だけは、無難な決断が増えてしまうので絶対に避けたいと思っています。なかには「まつもとさんの発言はSNSや記事にたくさん残っているから、それを利用して人工知能をつくればいいんじゃないか」と言ってくる人もいます(笑)。

なにはともあれ、これからも多くの人にRubyを使ってもらうために、どんな時代もどんな困難も生き抜いていきたいです。