※この記事は2019年8月に取材・撮影した内容です
私たちが使う便利なアプリの数々は、“プログラミング言語”によって作られています。言語の種類は数え切れないほど存在していますが、「多くの人々に利用されているもの」となると、ごくわずか。優れたプログラミング言語を生み出せる人物は、世界的に見ても一握りなのです。
その数少ない人物のひとりが、日本にいます。プログラミング言語・Ruby(ルビー)の作者である、ソフトウェア技術者のまつもとゆきひろ( @yukihiro_matz )さんです。使い勝手の良さや生産性の高さから、まつもとさんの生み出したRubyは世界中で高い評価を受け、まつもとさん自身も世界中のコンピュータエンジニアから「Matz(マッツ)」の愛称で知られるようになりました。
では、まつもとさんは戦略的に、現在のキャリアを築き上げてきたのでしょうか。その答えは「NO」です。むしろ、「自分のやりたいことをやっていたら、いつの間にかこうなっただけ」とさえ彼は語ります。では、彼のキャリアを形成した資質とは、いったい何だったのでしょうか。
まつもとさんが記入した「キャリアグラフ」とともに、ご自身の履歴書を振り返ってもらい、“Rubyのパパ・まつもとゆきひろ”を作り上げたものを伺います。
バブルが弾けて、新卒2年目にして窓際族
──ご記入いただいたグラフを見ると、マイナスの時期がないことが印象的です。まずは、24歳のときに新卒入社された日本タイムシェアについて聞かせてください。なぜ、この企業を選ばれたのでしょうか。
幼い頃からコンピューターをいじることやプログラミングすることが好きだったので、IT企業に入りたいとは思っていたんですよ。当時はバブル末期だったので、就職先にも困りませんでした。でも、多くのIT企業は東京にあって。それが嫌だったんです。
私は鳥取県で育ち、大学は筑波大学に通っていたんですが、都会よりも落ち着いた地方の方が、私にとって居心地が良かったんです。
──そこで、就職先を選ぶ際にも、地方で働けることを重視したのですね。
はい。東京以外で働けるIT企業はないかなあと探していたとき、日本タイムシェアが見つかりました。本社こそ東京でしたが、開発拠点は静岡県の浜松市です。これはいいと思って、入社を決めました。
新卒入社の同期は200人ほどいたんですが、大学などでコンピュータの技術や学問を学んでいた人間は、私を入れて6人しかいなかったんです。他は未経験の人たちでした。数少ない経験者ということで、会社からはとても良い扱いをしてもらえました。
私が配属されたのは、社内ツールの開発を担当する部署でした。社内で使うものを作るので、よくある「クライアントさんがこう言ってきたから、急いで開発しないと」みたいな大変さがない。ツールの方向性が決まったら、1年目の新人であろうと、自分が担当する機能は自由に設計・開発していいことになっていました。裁量が非常に大きかったんです。
──だからこそ、キャリアグラフもプラスからスタートされているのですね。では、入社から数年のキャリアは順風満帆でしたか。
いえいえ。私は1990年入社なんですが、1991年の終わりくらいにバブルが崩壊して、急に景気が悪くなってしまったんです。
就職して初年度はまだバブルの時期でしたから、年間のボーナスは給料の6か月分くらい支払われたんです。でもバブルが弾けてからは、年間で給料の1.5か月分くらいになってしまいましたね。
さらに、好きだった社内ツールの開発チームが解散してしまったんです。社内ツールって、直接的には利益を生み出さないじゃないですか。案件を受託して、お金を稼がなければいけなくなりました。不景気って嫌ですね。社内ツールのメンテナンス要員には、私を含めた2人だけが残されました。
ただ、メンテナンスといっても、正直やることなんかないんですよ。たまに電話で「すいません、ツールが動かないんですけど」という問い合わせがあったら「じゃあ、コンピュータを再起動させてください」と返答して仕事が終わってしまう(笑)。
──言葉は悪いですが、窓際族のような生活だったのですね。しかし、苦しかったはずの1991年や1992年ですが、キャリアグラフは依然としていい位置をキープしています。なぜでしょうか。
確かに会社は厳しい時代で、ボーナスも出なかったりしたんですけど、ご飯は普通に食べていけましたし、仕事もそれほどしなくていいので楽でしたから(笑)。不景気でしたが、楽しくやっていたんです。毎日そういう状態ですから、自由な時間は豊富にある(笑)。そこで、「いっちょプログラミング言語でも作ってみるか」と考えたのが、Ruby誕生のきっかけになりました。
そして、せっかく作るのであれば、自分がほしいと思えるもの、プログラミングがラクで楽しくなる言語を作ろうと思ったんです。
1993年2月24日。Rubyが産声をあげた
──Rubyの誕生秘話を、ぜひ詳しく教えてください。
実はRubyはある技術系教本のモチーフとして作りはじめたんです。「言語を作りながら学ぶオブジェクト指向*1」という趣旨の企画でした。
本作りに関わっていた会社の先輩が、本の題材になるプログラミング言語がいるというので、「じゃあ、私プログラミング言語は得意ですし、何か言語を作りましょうか」という話をしたのが92年の冬くらい。結局、その出版企画はポシャってしまったのですが、「本にはできないけれど、時間もあるし、せっかくだから言語を完成させてみよう」と考えたのが、先ほどの「いっちょプログラミング言語でも作ってみるか」の元になっています。
──プログラミング言語を作る、という作業がまったくイメージできないのですが、何から着手したのですか。
最初に決めたのは、言語の名前からでしたね。プロジェクトを始めるなら、コードネームがいるだろうと思って、命名しました。Rubyという名前に決めたのは、1993年の2月24日です。この日をRubyの誕生日としています。概念的存在であるソフトウェアにとっては名前があるということがもっとも重要なことだと思うからです。
──なぜ「Ruby」と命名したのですか。
Perlという有名なプログラミング言語があるんですが、その名(pearl・真珠)にちなんで宝石の名前がいいと考えました。ダイヤモンドやサファイアは長いから、何にしようかなと迷っていたら、Rubyはどうだろうかと。
もうひとつCoral(珊瑚)という候補もありましたが、「Ruby」のほうが文字数が少なくてキーボードで打つのも楽ですし、ルビーの方が宝石として高価です(笑)。それに、誕生石の順番も真珠が6月でルビーが7月。「これはちょうどいい」とRubyに決めました。
余談ですが、Perlって、Practical Extraction and Report Languageの略語で、一文字一文字に意味があるんです。Rubyも同じように、格好いい何かの略語にしようと思ったんですけど、BやYから始まる良い単語がなかなかないんです。「R、U、B、Y……。ダメだ、良いのが思い浮かばない」と思って、略語を決めるのは早々に諦めました(笑)。
──残念でしたね(笑)。
その後、1994年に転職したのですが、Rubyは1社めの業務時間中にこっそり作っていたものです。転職するからといって、黙って持ち出すわけにもいかず、上司に「こんなソフトウェアを作っていたんですけど、どうしましょう?」と相談したら「それは見なかったことにしておく。あなたの作ったものだから、持っていっていい」と(笑)。今だったら、コンプライアンス上の大問題かもしれません。しかし、もしあのとき、ダメだと言われていたら、Rubyの運命は変わっていたかもしれません。
こうした幸運があって、転職後もRubyの開発を続けられたんです。あまり大きい声では言えませんが、転職先でも懲りずに勤務時間中にRubyを開発する生活です。とはいえ、会社の仕事もきちんとしてましたよ。当時、会社まで地下鉄で通っていたんですけど、電車に乗ってノートPCを開けてカタカタやり、20分ほど地下鉄に乗っている間に会社の仕事をする。あと、帰るときの20分も加えて、40分で1日の仕事を片付けるんです。私は手だけは早いんですよ(笑)。あとの時間を使ってRubyを作っていたんです。
「Rubyはすぐに消えるだろう」と思っていた
──Rubyが形になり「もしかしたら、すごいプログラミング言語になるかも」と思えたのは、いつごろでしたか?
正直なところ、すごいものができたという手応えはなかったんです。「使えるものにはなる。ゴミではないかな」と思えたのは、1994年の暮れころでしょうか。
80年代後半から90年代にかけて、個人が開発したプログラミング言語って山のように登場していたんです。 昔、ネットニューズという巨大な掲示板のようなメディアがあったんですが、当時はそこにスレッドを立てて、自分の作ったソフトウェアやソースコード*2を公開する文化がありました。
当然、プログラミング言語もたくさん投稿されていて、「数年前は注目を集めていたけど、最近聞かないよね」という言語も山ほどありました。だから、Rubyも同じように「数ある中のひとつになるだろう」くらいにしか考えていなかったです。
──Rubyがようやく世に出た時期でも、けして舞い上がらずにキャリアグラフの位置がキープされているのは、それが理由なのですね。
そうなんです。1994年の12月には、ネットニューズで「こんなプログラミング言語を作っているので、皆さんの意見が聞きたいです」というメッセージとともに、アルファ版をリリースしました。正式にリリースしたのはその1年後、1995年12月ですね。でも正直、すぐに飽きられて、せいぜい数年でなくなるだろうと思っていましたね。
97年に現在も籍を置くネットワーク応用通信研究所に転職しますが、その後、ありがたいことに、Rubyの認知度が上がっていきました。ただのオモチャではない、という機運が出てきた。その後、1998年に「Ruby Conference」というイベントが開催されたり、国内外でRubyの専門書籍が出版されたりと、十把一絡げの言語とは違うという雰囲気になってきました。
2000年から2001年にかけてはRuby本バブルのような状況があって、みなさんがたくさんの本を書いてくださいました。嬉しかったですね。出た書籍は献本してもらえたので、我が家の本棚には初期のRubyの本がいっぱい並んでいるんですよ。この時期は、キャリアグラフが少し上がっていますが、「良いプログラミング言語を作れたかも」と浮かれていたわけです(笑)。
一般化したRubyは、誰のものか
──ですが、その後は落ち着かれて、キャリアグラフも少し下がっていますね。
いったん冷静になりました(笑)。徐々に有名になってきたとは言っても、実際には世の中の大多数の人はまだRubyを使っていないわけです。プログラミング言語として市民権を得た、という感じではなかった。どちらかといえば、知る人ぞ知る、くらいの立ち位置でした。
──Rubyが広く知られるようになったのには、Ruby on Rails(以下、Rails)というフレームワーク*3の登場が影響を与えたというのが通説です。
Railsは公開初期から動画で開発チュートリアルが公開していたのです。例えば、「15分間でTODOアプリをイチから作る」といった内容です。そして、動画内で本当にアプリを15分で作り上げていたんですよ。生産性の高さから徐々にRailsの良さが認められていき、海外では2004年から2005年にかけてWebアプリケーションを作るのにRailsを使う人が増えました。それに伴って、Rubyのユーザーも増えていったわけです。
──まさに、Rubyのフェイズが変わった瞬間ですね。
それから数年をかけて、海外で生み出されたRailsの人気がいよいよ日本にも届き始めました。業務でRubyが使われることが増えてきて、一般的に認知されていった。日本におけるRailsブームのような時期でした。
私はというと、ネットワーク応用通信研究所でシステム開発の仕事をする傍ら、Rubyも変わらず開発し続けていた時期です。RailsとともにRubyが盛り上がりを見せる中、私が住む島根県の松江市が「Rubyを支援します」「Rubyを中心に事業を展開しましょう」と言ってくれるようになりました。一般財団法人Rubyアソシエーションという団体の原型が松江市でできたのは2008年で、私が松江市名誉市民になったのは2009年。日経BP技術賞大賞をいただいたのもこの頃です。
──Rubyが一般的にブレイクしたとなると、まつもとさんのものとは言い切れなくなるのでは、と感じます。Rubyに公共性が求められるようになってきたのではないでしょうか。
確かに、こんな広く使われるものを作ったんだから社会的な責任がある、公共で使われることを意識した開発が必要なのでは、という意見もありました。しかし、私はRubyを公開してお金をもらったわけではないし、自分が作ったものを世間にシェアしているにすぎない、と認識してきました。ですから、責任だけ引き受けるつもりはない。
もちろん、なにも考えずに好き勝手に開発して、積極的に世間、つまり世界中のRubyユーザーに迷惑をかけるつもりはありません。私のほうから自発的に、世間に対して配慮はします。しかし世間の方から「配慮しろ」と言われると、「なにくそ、それは違うだろう」と反発したくなってしまう(笑)。
──Rubyがどれだけ有名になろうとも、自分が使っていて気分のいい言語を作りたいというモチベーションは変わらない、と。
そうですね。自分にとっていい言語を作りたい、という思いは今でも変わりません。Rubyに不満を感じる人がいない状態が理想なのではなく、Rubyが優れた言語であることが理想なのですから。
──一方で2004年から2008年頃にかけては、Rubyの開発体制の変化も起きています。2004年頃から徐々にRubyの開発に関わる方が増えていき*4、Ruby開発コミュニティの規模が徐々に大きくなってきました。2006年には、まつもとさん以外のメンバーがリリースマネジメント*5を務めるようにもなります。
私、ズボラなんですよね。プログラミング言語の設計は比較的得意なんですけど、マネジメントが正直あまり上手じゃなかったんです。
私がリリースマネジメントをやっていた頃も、「Rubyの新しいバージョンをリリースしましたが、この修正を入れるのを忘れていたからもう一度再リリースします」とか「8月15日に新しいバージョンを出すと言っていたけれど、あれは嘘です。9月になってしまいました」とか(笑)。その他にもいろいろズボラな部分があって。「こんなズボラなやつには任せておけない」と、リリースマネージメントをやってくれる方々が出てきてくれました。
ただ、自分がマネージメントしない、という状況には複雑な思いがありましたね。作業が楽になるのは間違いないんだけど、ずっと自分でやってきた役割が、他の人の手に渡るのは正直さみしい気持ちもあって。葛藤はありましたが、それによってリリースがうまく回るようになるならば、いいか、と思うようになりました。
2008年頃には私自身が手を動かしてRubyを作ることも徐々に少なくなっていくのですが、優秀な技術者の方々がどんどん入ってきてくれましたから、私が介入しなくても開発が進んでいくようになったんですね。私が仕様だけ決めたら、あとは誰かがコードを書いてくれる状態です。
──ご自身が手を動かさなくても、Rubyが進化していく喜びは変わらないのでしょうか。
結局、私は“言語デザイナー”なんです。言語の設計には非常に興味があるけれど、実際に手を動かして構築作業することに対しては、設計ほどの興味はない。
Rubyの開発コミュニティには私よりもはるかに能力の高い技術者がたくさんいますから、構築作業は彼らに任せておけば安心です。たとえ誰が作ったたとしても、私が欲しかったものが達成されれば、それでいいや、と思っています。
──誰がやったか、ではなく「何ができ上がったのか」が重要なのですね。
「これは私の生み出した言語だから誰も手を出すな」みたいなことを言い出すと、多くの方が開発に参加する環境ではうまくいかないんですよ。誰が書いたソースコードだとしても、ダメなものであればダメだと言いますし、良いソースコードであれば賞賛します。
それは、たとえ私が書いたコードであっても同じで、クソコードなら誰かに修正されますし、ときには「お前はRubyの作者だが、ダメなコードを書いていると開発者権限を取り上げるぞ」と言われたりもする(笑)。
──Rubyを作ったのはまつもとさんです。しかし、Rubyを実際に作る上では、まつもとさんも他の開発者の方々は平等であるべきだと考えていらっしゃるのですか。
そうですね。「お前のアイデアは良いけれど、お前が言ったからダメだ」みたいなことはやりたくない。フェアではないですから。自分自身がフェアに接することで、相手もフェアに接してくれるのだと思っています。
やりたくないことはできるだけやらない。自分の裁量はなるべく大きいほうがいい。
──まつもとさんが仕事のなかで大事にしてきたものはなんでしょうか。
「イヤなことにはイヤだと言う」ということは大事にしてきた気がします。思い返してみれば、新卒のころから、会社の決めた方針に納得できなければ「おかしいんじゃないですか」とよく言ってきました。上司からすると、扱いにくい部下だったでしょう。よくクビにならなかったものです(笑)。
もちろん、仕事をしていくなかで、「イヤだと感じるけれど、やらなければならない仕事」もあるでしょう。「デメリットがあるのだけれど、ある事情でやらざるを得ないんだ」と言われれば、妥協することもあります。しかし、とにかくやれ、と言われのは嫌なわけです。幸いなことに、いままで「とにかくやれ」と言われたことはありません。しかし、どんな状況であっても、「やりたくない」とか「やらないほうがいい」と思ったことについては、きちんと表明すべきだと思うんです。
2003年ころから、誰からの業務命令も受けずに、自分の好きなソフトウェアを作っていられる環境が実現できました。ソフトウェア技術者としては大変恵まれた状況にあると言えるでしょう。だから、基本的に満足度が高い状態を保っています。
──だからこそ、グラフも高い値を保っているのですね。まつもとさんの現在の生活は、かつて抱いていた理想のキャリアに近いものですか。
実は、あまり「理想のキャリアは何か」って考えたことないんです。やりたくないことはできるだけやらない。自分の裁量はなるべく大きいほうがいい。そう考えて生活し続けてきたら、こういう状態に至ったという思いです。正直に現在の胸の内を言うと、最初にRubyを作って「すぐに消えるだろう」と思っていたときと、気持ちはあまり変わっていないんです。なぜRubyは残ったのだろう、といまでも不思議に思います。そんなに自己評価は高くないんですよ。
確かに良いものは作ったという自負はありますが、世の中にプログラミング言語は山ほどありましたから。生き残っていた可能性のある言語、ほかにもいっぱいあるだろうと。
もちろん、Rubyが世界に広がったことでかなり良い思いをしてきましたし、恵まれた環境にもあったので、Rubyを愛してくれる世界中の方々に「ありがとうございます」と思ってはいますけどね。
──これから先も、Rubyとの歩みは続けていきますか。
私は2025年に60歳になるんですが、実はその年くらいに長期休暇をとりたいなとは思っています。1年間くらい、Rubyの開発をお休みする、ということです。ずっとやっていますから、60歳にもなれば、少しだけ休んでもいいかな、と。でも、しばらく経ったら戻ってくるでしょう。
Rubyから完全に引退するなんてことは、考えていません。好きですからね。やはりRubyとの関わりは、生涯続けていくでしょう。
Rubyが20年、25年と生き残り続け、多くの方に褒めてもらい、時々調子に乗ってグラフが高くなっています。今後も、Rubyが続いていき、どこかの節目で誰かが褒めてくれたら、その時はまたグラフが上がるのだろうと思います。
関連記事
取材・文:中薗 昴
*1:オブジェクト指向とは、ソフトウェア設計において用いられる手法のひとつ。Rubyもオブジェクト指向を取り入れた言語である。
*2:ソフトウェアの設計や構造を示す、プログラミング言語で書かれた文字列の集合。
*3:フレームワークとはソフトウェア開発で、「よく使われる機能を作るための機能」を集めたもの。Ruby on RailsはRubyで作られたフレームワークの代表で、デンマークのプログラマであるデイヴィッド・ハイネマイヤー・ハンソン(@dhh )によって作り出された。
*4:プログラミング言語の開発は多くの場合、オープンソースと呼ばれる理念の元に行われる。これは、ソフトウェアのソースコードを無償で一般公開して、誰でも自由に開発に参加できるようにするし、人々の善意によって開発が進められるというスタイルだ。かつては、まつもとさん1人の手によって開発が進められてきたRubyも、徐々に賛同者が増えてコミュニティが大きくなった。その「開発に携わる人々」のことをコントリビューターと呼ぶ。
*5:ソフトウェアのリリースにかかるプロセス全体をマネジメントすること。