Yahoo!ニュース

塩田亮吾

「言語の開発は自分の宇宙をつくる感覚」Rubyの生みの親・まつもとゆきひろの創造性

2020/05/07(木) 10:00 配信

オリジナル

コンピュータを操作するプログラミング言語で日本生まれのものがある。Rubyだ。1995年に一般公開され、いまなお人気ランキングでトップクラスに位置する。開発者はまつもとゆきひろさん(55)だ。無駄を省き、ストレスがないように設計されたRubyはプログラミングという作業を楽しめることがポリシーに掲げられている。一方で、Rubyの開発は自分の宇宙をつくる感覚にも近いという。まつもとさんに世界の言語を構築する醍醐味を聞いた。(ジャーナリスト・森健、写真:塩田亮吾/Yahoo!ニュース 特集編集部)

書いて楽しいという「書き味」

──Rubyが公開されて25年になります。これを使って構築されたウェブサービスには有名なサイトが多数あります。

国内では「クックパッド」「食べログ」、海外では「Airbnb」(民泊サイト)、「GitHub」(ソースコードを保管、共用するサイト)など、たくさんの企業や団体がRubyを使ってくれています。それを思うと、Rubyの価値を理解してくれている技術者はいまも少なくないんだなと思います。

──20年以上、Rubyはプログラミング言語の人気ランキングで高い人気を誇っています。

正確に言うと、2006年ごろからプログラマーの間で過大な期待で人気になって、2012年ごろの一時期下がったこともあります。ですが、その後また評判が上がり、いまは一定程度、人気を維持しているという状態です。

──それだけ技術者に支持される理由は何でしょうか。

プログラミングをしているとき、簡潔で楽しいという感覚がRubyにはあると言われるんです。僕はその感覚を「書き味」と言っているんですが、それじゃないかと思います。その「書き味」は言い換えると、書いているときにストレスが少ないとも言えます。

(撮影:塩田亮吾)

コンピュータを動かすにはソフトウェアが必要になる。そのソフトウェアの動かし方の手順を記したものをプログラムという。プログラムを記述するにはコンピュータ用の「言語」が必要になるが、その言語のことを「プログラミング言語」と呼ぶ。

プログラミング言語は「C」「Java」「PHP」など有名なものだけでも数十種類、無名なものも入れると7000種以上存在する。そのうち、高い人気を誇る日本発の言語が「Ruby(ルビー)」だ。ウェブアプリケーションをつくるプログラミング言語として、長く技術者から人気を博している。このRubyを生み出したのが、まつもとゆきひろさん(55)だ。

──広く利用されているのは「書き味」だけが理由でしょうか。

Rubyは技術者が開発するときに、できるだけ楽できるように工夫しているんです。そのために、プログラムを書く量が減ったり、開発までの時間を短くできたり、クリエーティブに楽しめたりする。そういうよさを技術者が理解してくれているんだと思います。

──具体的にどういうことでしょうか。

もともとコンピュータというものは、計算がめちゃくちゃ速いんですが、「やれ」と言われたことしかできません。何かしてほしいとき、相手が人間ならば一言伝えれば、意図を理解していろんなことをしてくれます。でも、コンピュータはそこまで賢くない。事細かにやるべきことを指示しないと動かないんです。

だから、もしコンピュータにやらせたい仕事のイメージがあったら、それをわかりやすくコンピュータに伝えなくてはいけない。そこで初めてコンピュータは動作します。その過程をつくるのがプログラミングです。

そのプログラミングの際、よくある決まった動作をつくらねばならないことがあります。だとしたら、事前に「こう操作したらこう動く」という、面倒くさい仕事の手順を用意しておけばいい。それをRubyでは多数用意しているんです。

それは「ライブラリ」、つまり図書館のような場所に登録しておく。すると、Rubyで何かソフトウェアを開発しようとしたときに、ライブラリを参照すると面倒くさい部分の記述を省くことができる。そういう道具立てを数多くそろえているので、結果的に、Rubyを使っていると楽しいと思えるんじゃないかと思いますね。

自分の宇宙の物理法則をつくる感覚

──技術者の人たちが使いやすくするための設計なんですね。

そう……とも言えますし、自分のためでもあります。

そもそも言語をデザインするというのは、ふつうのソフトウェアをつくるのとはちょっと違います。つまり、Rubyというのはプログラミングをするための言語で、それをつくっているということは、Rubyという言語での考え方のガイドラインを提供しているということなんです。

(撮影:塩田亮吾)

──「考え方のガイドライン」とはどういうことでしょうか。

私たちはいま日本語を使って話をしていますよね。つまり、日本語という言語によって思考がガイドされているわけです。日本語を使えば日本語的な考え方に影響されるし、英語を使えば英語的な考え方に影響を受けます。

同じように、コンピュータの言語でもプログラマーがRubyを使ってプログラミングするときには、Rubyという言語(の特性)にガイドされて、プログラムしているということになる。つまり、Rubyをつくるという作業は、Rubyを使うプログラマーの思考をデザインするということにもなる。

それは非常に自由度が高いことだし、ある種、自分のルール、自分の宇宙の物理法則をつくっているという感覚にもなるんです。

──それは創造主のような感覚でしょうか。

そうですね。だから、すごく楽しいです。Rubyを使ってプログラミングするという楽しさもあるんですが、Rubyをつくるという作業は、もっと究極の自由として楽しいんです。

まつもとゆきひろさんは、世界のコンピュータ技術者の間で「Matz」の名前で知られる。1965年、大阪府に生まれ、4歳で鳥取県米子市に家族で転居した。1984年、筑波大学に入るも、途中2年の休学をしたのち退学、1988年に再度編入試験で復学し、1990年に卒業した。卒業後、静岡県に拠点を置くソフトウェア開発企業に就職。まもなくバブル経済がはじけると、開発の仕事が激減。そこで空き時間ができたのをきっかけに、仕事の合間につくりはじめたのがRubyだった。

仕事の合間に開発を開始

──コンピュータに初めて触れたのはいつですか。

中学2年のときです。父が買ってきたポケットコンピュータ(PC-1210)にはまりました。使っていたのはBASICという言語でしたが、そのポケコンを使って、父が勤める建材会社の残業代計算プログラムを中3のときにつくったのです。

おもしろいなと思って勉強していくと、世の中にはBASICの他にもプログラミング言語があるというのを知りました。同時に、プログラミング言語というのは、自分の考えをどう表現するかということだとも気づいた。もともと心理学のようなものに興味があったので、それならプログラミング言語そのものを発明したら、それによって人間の思考もガイドされるのでは、あるいは、ガイドできるとしたらどのような支援になるのか、ということを考えだしたんです。

──いつごろですか。

高2か高3でした。当時はインターネットもないどころか、本当のコンピュータでプログラミングできるような機会もなかった。だから、何をしていたかというと、「こういう言語だったら最強だ」と考えたプログラミング言語を自分でノートに書いていたんです。

(撮影:塩田亮吾)

──アナログですね。

はい。書いていたのは、具体的な動かし方よりも基本文法のようなものですけどね。実際にRubyをつくりだしたのは、1993年ごろです。

──仕事の合間に書きだしたという話ですが。

私は1990年入社で、まもなくバブル経済が崩壊したことで、会社の開発の体制も変わることになりました。もともと社内の生産性を高めるためのツールの担当だったのですが、このチームの業務がメンテナンス中心になり、基本的にやることがなくなってしまったんです。ただ、開発マシンは目の前にあるし、スキルも伸びてきたので、実際に言語でもつくってみようかと始めたのがRubyでした。

──バブル崩壊の恩恵のようですね。その後、制作の経緯はどうだったのでしょうか。

毎日、会社と家をフロッピーディスクを持って行き来していました。会社で書いて、それをフロッピーに記録して、家に持ち帰る。自分の家のパソコンで展開して、また開発を進め、翌朝またコピーを持っていく。その繰り返しを2年ほど続けていました。

ただ、最初は自分のソフトウェアがどこまで広がるかまでは、あまり考えていなかったです。当時のプログラミング言語はいまほとんど残っていませんが、何十種類とあったんです。その意味で新しいプログラミング言語の出現自体はよくあるものでした。

ただ、日本から生まれたプログラミング言語というのは世界でも珍しく映ったと思うし、日本人がつくったということで日本の方からは支持してもらっていましたね。

(撮影:塩田亮吾)

Rubyのコミュニティは公正でオープン

──Rubyは1995年にウェブで無償公開されます。そこからどのように広がったんでしょうか。

初期の時点では、デイブ・トーマスさんという方がRubyの解説本を書いてくれたのが大きいです。彼は趣味として毎週末にいろんなプログラミング言語をダウンロードして試してみる、というのを当時していたのです。そこでRubyを試してみたところ、使いやすい、翌日もまた使ってみた、数日後にもまた使ってみて、やはり使い心地がいい、となって、仕事上の相棒にRubyはおもしろいと紹介した。さらにその先にRubyのガイド本まで書いて出版したわけです(2001年)。

また、同じころにRubyを開発する人たちのコミュニティが広がったのも大きいと思います。技術者にとってソフトウェアを使っていて、バグ(コードの誤り)に遭遇したり、自分の期待したように動かなかったりということがあると、自分自身で修正したくなるんです。自分でコードを書けるわけですから。その意味で言うと、Rubyのコミュニティはすごくオープンな場だったので、参加しやすかったのもあると思います。

──どういうことでしょうか。

Rubyはソースコードが公開されていて、利用や改変が自由にできる「オープンソースソフトウェア(OSS)」です。ただ、OSSと言っても、その扱われ方は同じではありません。たとえば、あるOSSでバグがあったとして、そのバグを見つけて修正コードをそのコミュニティや権限のある人に送っても、「他人が書いた修正など受け付けない」「自分たちだけで直す」という方針のところもある。あるいは、非常に排他的で、善意でバグのリポートを送っているのに、まず罵倒してくる、というOSSのコミュニティもある。

Rubyのコミュニティはその点、参加したい人に対してハードルも低くし、コードの修正に対して、公正、オープンにしていたので、参加しやすかったかなと思います。

Rubyのウェブサイト

──Rubyではそうした追加や修正はまつもとさんだけでやっていたんですか。

当初は私だけでした。でも、いまは100人以上います。Rubyでそうした権限をもつ人をコミッターと呼ぶのですが、そうしたコミッターが数人になったのが2000年前後で、昨年100人を超えた状態です。そういう体制が可能になったのも、バージョンを管理するシステムができ、後になって何かまずいことが判明しても、取り消して前のバージョンに戻すことができるから。そうなって、やりやすくなりましたね。

その後、Rubyの利用者を広げることになったのが「Ruby on Rails」(通称Rails)というフレームワークの登場だ。フレームワークとはプログラミングをする際に、ある程度決まった作業を多数用意してあるセットで、RailsはRubyをより効率的に扱えるようにしたフレームワークだった。たとえば、もし「ブログ」をつくろうとRailsを使って「rails new blog」と記述すると、その瞬間、ブログの設定に必要なファイルやデータベースなどが自動的に生成される。Railsの登場によってRubyを使う技術者の手間が大幅に省けるようになった。このRailsが2004年に登場すると、ウェブ系のプログラマーの間でRubyは急速に人気を博すことになった。

世界のどこかで毎週Rubyに関するカンファレンスが

──Railsの開発者はデンマークの方のようですが、面識があったのですか?

デンマークのカンファレンスで会ったことはありました。でも当時、彼は学生で、ちょっと話しただけです。後にRailsというフレームワークが公開されると聞いたときには、「どうぞどうぞ」という感じでしたね。

Railsがよかったのは、典型的なウェブアプリケーションの構造を見抜いて、ここまでは共通でいいというところまではすぐセットで用意できる仕組みにしたことでしょう。それまでは、Rubyを使ってウェブサービスをつくる場合、毎回ゼロから家を建てていた。ところが、Railsを使いだしたら、世のウェブサービスの8、9割はRailsが用意したセットでつくれることになった。

実際、少しすると、「Railsを試してみたら、すごく生産性が高い」とものすごく評判が上がり、2006年ごろからビジネスでRubyを使う人たちが増えていきました。

(撮影:塩田亮吾)

──このころからRubyを取り巻く体制も、しっかりしてきた印象です。

公的なバックアップもありました。私が拠点を置いている島根県と松江市が地域振興重要施策として支援してくれ、経済産業省でも中国経済産業局で後援してくれた。そんなこともあって、2007年にはRubyアソシエーションという団体もつくられることになりました。

2006年からはRubyKaigiという国際的な年次会議も始まっています。いまでは、世界のどこかで毎週Rubyに関するカンファレンスが行われているような状態です。

──1995年の公開時、ソースコードは2万6465行でした。現在ソースコードはどれくらい増えましたか。

コードサイズだと100倍くらいになっています。いまはコードの書き方も同じではないですからね。当初は私が唯一のRubyのプログラマーで、しばらくの間は変更の提案があっても私がチェックしてから、というやり方でしたが、関わる人が増えてからは「こういう方向性、デザインでいきましょう」と決めると、他の人たちが開発してくれる。

だから、最近のRubyでの私の立場というのは、プロダクトマネージャーのようになっています。いまは、2013年に出たバージョン2.0から3倍の速さを実現することを掲げて、バージョン3.0の開発に取り組んでいるんですが、現在2.8倍まで速くなったコードには私は1行もタッチしていませんから。でも、ケネディ米大統領のアポロ計画じゃないけど、高い目標を掲げてそこに向かうことは大事なので、そういう旗を振ることはやっていかないといけないと思いますね。

(撮影:塩田亮吾)

信仰は自分のもう一つの軸

まつもとさんは1997年に松江市にあるネットワーク応用通信研究所に転職。以後、東京には依拠せず、松江を中心にグローバルに活動してきた。そんなまつもとさんの支えとなっているのは、じつはキリスト教への信仰だという。小学生のときに家族で入信すると、大学では2年ほど休学・一時退学し、宣教師をしていたこともあった。いまも信仰は自分の軸になっていると言う。

──信仰とRubyを制作する活動には関連性はありますか。

直接的にはないでしょう。プログラミング言語をつくっている人で信仰深い人が多いわけでもないですし。

ただ……、私の中では、なにかあると感じます。クリスチャンなので、世界を、宇宙を創造する神を信じている。信仰がゴールにしているのは神様のような存在に近づくことだとすれば、その宇宙を創造する観点は、Rubyという言語の世界をつくっていく感覚に近い、と感じるのかもしれません。

また、それとは別に軸をもう一つもてるということもいいと思っています。

──軸とは。

Rubyをつくったことでまつもとゆきひろという人物が世界で評価された。それはとても光栄なことなんですが、一方でプログラマーではない自分もいる。それが信仰者としての自分で、自意識の拡大をさせないようにしている。世界で注目されると、つい自意識が拡大して尊大な態度をとってしまう人もいると思うのです。そんなことになると、コミュニティにも支障をきたして、うまく回らなくなる。それを防ぐのは自分を相対化して、実物大に感じられることだと思うのですが、それが信仰でうまくバランスがとれているように思います。

──Rubyを開発してよかったことを挙げると、どんなことがありますか。

人類が進化したおかげで、キリキリ働かなくてもよい時代になってきたと思うんです。そういう時代のなかで、プログラミングも楽しみも味わいながら、ご飯も食べられるようになってきた。そういう技術の中にRubyも貢献できているとしたら、よかったと思いますね。

(撮影:塩田亮吾)


森健(もり・けん)
ジャーナリスト。1968年、東京都生まれ。早稲田大学卒業後、総合誌の専属記者などを経て独立。『「つなみ」の子どもたち』で2012年に第43回大宅壮一ノンフィクション賞受賞、『小倉昌男 祈りと経営』で2015年に第22回小学館ノンフィクション大賞、2017年に第48回大宅壮一ノンフィクション賞、ビジネス書大賞2017審査員特別賞受賞。