まつもとゆきひろ さん (@yukihiro_matz)
1965年生まれ。筑波大学第三学群情報学類卒業。プログラミング言語Rubyの生みの親。 株式会社ネットワーク応用通信研究所フェロー。一般財団法人Rubyアソシエーション理事長、複数のIT企業の技術顧問なども兼任。島根県松江市在住。
日本発で世界的に使われているソフトウエアは、残念ながらそう多くはない。その数少ない成功例の一つが、プログラミング言語「Ruby」だ。Rubyによって開発された有名Webサービスは、日本だけでなく世界中に数多くある。
では、なぜRubyは成功できて、他の多くの日本のソフトウエアは成功することができなかったのか。2021年9月4日に開催された「type エンジニア転職フェア ONLINE」では、Ruby開発者である、まつもとゆきひろさんに開発の背景や成功の要因を語ってもらった。
まつもとさんの経験に裏打ちされたメッセージは、新たなソフトウエアやサービスをつくろうとするエンジニアにとって、確かな道しるべとなるはずだ。
まつもとゆきひろ さん (@yukihiro_matz)
1965年生まれ。筑波大学第三学群情報学類卒業。プログラミング言語Rubyの生みの親。 株式会社ネットワーク応用通信研究所フェロー。一般財団法人Rubyアソシエーション理事長、複数のIT企業の技術顧問なども兼任。島根県松江市在住。
ご存じの通り、Rubyは世界中で使われています。世界的に成功したソフトウエアの一つだと言うことができるでしょう。一般的に、日本のソフトウエア産業はあまり強くなく、世界的に知られているものはさほど多くないというのが現実です。
その理由は、やはりある時期の日本の製造業が大成功してしまったことにあると思います。自動車会社や家電メーカーのような、自分の工場を持って高品質・高効率の生産ラインをつくるという製造業モデルが非常に優れていたために、その成功体験から抜け出せなくなってしまった。
しかし、ソフトウエアの最大の特徴は、物理的実体がないということです。工場の生産ラインにおいては、物理的制約の中で、設計図通りのものをどれだけ効率的に作るかということが重視されますが、ソフトウエアにおいては、新しい設計や仕様そのものをどうやって生み出していくかということが求められます。
そうした中で、過去に成功した日本の大企業は、すぐにメンタリティーの転換をできなかったのではないかと思います。むしろ、ソフトウエア産業での成功は小さい組織であるほど、うまくいった。その要因はどこにあったのか、ということを探ってみることで、皆さんが今後のソフトウエア産業において成功する鍵を見つけることができるかもしれません。
では、Rubyはなぜ成功したのか。これは考えてみるとなかなか難しい問いです。例えば、Rubyがプログラミング言語として独創的で優れていたからだ、と言うことができるでしょうか?
もちろん、Rubyが他の言語より優れている側面はいくつもありますが、一方で他の側面でRubyより優れた性能を持つプログラミング言語もたくさんあります。それは得意・不得意があるということで、開発者から見ても、機能面でRubyが突出しているとは言えません。
私の考えでは、Rubyが成功した理由は、いくつかの要因が重なったことにあります。それらを順に見ていくことにしましょう。
私がRubyを開発したのは1993年、インターネットで公開したのが95年のことでした。その頃は、プログラミング言語の当たり年とも呼べる時期で、後に大きな影響を与えるJavaやJavaScript、PHPなどが相次いでリリースされます。そうした流れの中にRubyも入ることができたというのは、非常に良いタイミングでした。
もう一つ、コンピューターの世界で95年といえば、ご存じWindows 95が発売されたことを忘れてはいけません。このWindows 95によって、自宅のPCに電話線をつなげば、誰でもインターネットにアクセスすることができるようになりました。
その結果、当然インターネットに対応するアプリケーションが増えていきます。すなわち、HTMLやデータベース、WWWを構成するUNIX系スクリプト言語などと親和性の高いプログラミング言語が求められていくことになります。たまたまですが、Rubyはそこにぴったり当てはまったのです。
これは個人的な話になってしまうのですが、「運」もありました。私は大学を卒業して、90年にあるソフトウエアハウス、すなわち受託開発の会社に就職しました。私が配属されたのは、社内向けツールを開発するチームだったのですが、バブル崩壊で景気が悪くなると、チームごと解散になってしまいます。
すると、とにかくやることがないわけです。暇な時間と自由に使える開発環境が目の前にある。その時に、若い頃の夢をふと思い出したのです。それが、自分のプログラミング言語をつくりたいということで、Rubyの開発を始めるきっかけになった。ですから、そういう環境がそろったというのは、まさに「運」でしかなかったと思います。
ただ、タイミングや運は制御できないものですからもう少しコントロール可能な要因を考えてみましょう。それで思い至るのが、明確なターゲットがあったということです。
自分の作るソフトウエアの想定ユーザーは誰か? 私の場合、それは「自分自身」です。自分自身がプログラマーとして本当に使いたいもの、使いやすいものをつくる、というのが当初からの目的でした。
Rubyは他の言語よりあらゆる面で優れているわけではないと言いましたが、プログラミング言語に限らず、ソフトウエアを開発する際に、他より絶対的に優れているものなんてめったにつくれません。結局は、あるメリットがあるなら別のデメリットがあるというものにならざるを得ない。つまり、トレードオフの関係にあります。
このトレードオフがある時に、多くの開発者はブレてしまうのです。簡単に言えば、万人受けを狙って、失敗してしまう。私の場合は、最初から「自分が使いたいもの」という明確なターゲットがあったので、ブレることなく開発ができたのです。
成功の要因のもう一つは、継続ができたことにあります。95年にRubyを公開してから、すぐに多くの人に使われるようになったわけではありませんでした。01年に最初のRubyカンファレンスをフロリダ州タンパで開いたのですが、その際の出席者は36人でした。
現在のようにRubyがポピュラーになったのは、06年にRuby on RailsというWebアプリケーションフレームワークがブームになってからです。つまり、公開してから実に10年以上経ってからでした。私自身、Rubyに関する収入だけでやっていけるようになったのは、04年くらいからです。それまでは仕事をしながら、趣味のように開発していたわけです。
逆に言えば、Rubyの開発は私が趣味の延長でやっているものであって、オープンソースだったので、開発側もユーザーもほとんどコストは掛からないものでした。決してマスとは言えないけれども日々ユーザーは増えていき、彼らがいろいろなリクエストや提案をしてくれる。その中で、開発者の私も新しいインスピレーションを与えてもらえました。私にとっても大きな「意味」のあるものだったからこそ、継続することができたのだと思います。
Rubyは非常に価値があるものだと自負していますが、一方で、プログラムの完成度として見た場合には、われながら「うかつ」だったなとも思います。簡単に言えば、公開当初はたくさんのバグがあったのです。
ソフトウエアはバグがない方が良いに決まっています。ただ、Rubyの場合には、この穴を埋めるために、多くの人が開発に参加してくれて、結果的にコミュニティーが生まれることになりました。欠点があるがゆえに助けたくなるという、まさに怪我の功名です。
このコミュニティーには、Rubyの在り方に共感する似た感性を持ちながらも、さまざまな考えやバックグラウンドを有する多様な人が集まります。彼らによって、日々Rubyはブラッシュアップされていきました。こうしたコミュニティーの存在は、オープンソースのソフトウエアにとって核となるものではないでしょうか。
最初に申し上げた通り、日本の大企業的なやり方はソフトウエアづくりの面ではうまくいきません。21世紀のソフトウエアビジネスをしようと思ったら、コミュニティーの存在が不可欠なのではないかと思います。
こうしたコミュニティーを運営するに当たって、何が必要でしょうか。それがポリシーや哲学と呼ばれるものだと考えています。いわば、コミュニティーの核となるものです。
Rubyの場合は、「プログラミングを楽しくすること」がポリシーとなっています。あるいは、前述の最初のRubyカンファレンスで、英語でRubyの良さをプレゼンテーションするために考えたのが「Human Oriented Language(人に根差した言語)」という言葉です。これを思いついた時に、Rubyの設計思想が、私の頭の中で明確になったように思います。
また、このようにして集まったコミュニティーの人たちが、2015年にRubyコミュニティーのキーフレーズをつくってくださいました。それが「MINASWAN」というものです。これは「Matz is nice and so we are nice.」というものの頭文字を取ったものです。
Matzというのは私のことです。私がナイスだから、みんなナイスなんだというもので、そうやってお互いがナイスなコミュニティーをつくることができたのは、Rubyが広まった理由なのではないかと考えています。正直、私がナイスかどうかは自分ではよく分かりませんが(笑)。
そもそも、「成功」ということをお金だけで捉えるのだとすれば、私は「Rubyで成功した」とは言えないのかもしれません。Rubyはオープンソースですから、使う人がどれだけ増えたとしても、それによって私に入ってくるお金の額が直接的に増えるわけではないからです。
ですが、自分が使って楽しいと思えるプログラミング言語をつくり、そこに感性の近い仲間たちが集まって、楽しんでくれる。あるいは、そのプログラミング言語を使って、いろいろなものを作ったり、キャリアを築いたりしている様子を見ることができるというのは、大きな喜びであり、私にとってものすごい報酬なのです。その意味で言うと、Rubyは大成功を収めました。
皆さんの中には、ソフトウエアづくりを通して起業される方もいると思います。その時に、「第二のGoogle」を目指すという方がいてもいいのですが、必ずしもそれに捉われる必要はないのかもしれません。
最近は、まず無料でできるだけ多くの人に使ってもらって、そこからマネタイズするというやり方が増えています。しかし、私たちのRubyはそうではなく、少なくてもいいから共感してお金や労力を投じてくださる方に、さらに満足してもらえるよう完成度を高める努力をする、ということを続けてきました。
もちろん、「成功」にはさまざまなかたちがあります。諦めず一つのことをやり続けたことでRubyは成功しましたが、そうではなくピボットして、チャレンジの回数を増やすことで成功をつかむということもあるでしょう。
今のRubyは、Pythonなどに押されて「幻滅期」に入っているという見方もあります。とはいえ、申し上げたようにRubyはただ多くの人が使うということを目的としていません。私たちは、Rubyが好きな人が安定して使い続けられるように、何としても生き延びます。そのことが、日本のソフトウエアが成功するということへの将来の希望になると信じています。
ソフトウエアの成功にとっては、コミュニティーやポリシーなど、意外とテクノロジーではない部分が重要だというのが、私の経験から言えることです。私のお話が、皆さんがこれからソフトウエアや新しいサービスをデザインする上で参考になれば幸いです。
文/高田秀樹 撮影/桑原美樹
※写真は2019年に撮影したものを使用しています
NEW!
NEW!
NEW!
タグ