パーソルグループとSky株式会社は、sightを通してエンジニアの自分らしいキャリアを応援しています

世界のハッカーコミュニティがRubyを──そして、まつもとゆきひろを支えてくれた

プログラミング言語Rubyの開発者、まつもとゆきひろ氏。「Matz」の愛称で世界のハッカーたちに親しまれ、Rubyコミュニティを率いて、開発者と企業の間の繋いでいる。2020年はRuby最初のリリースから25年を迎えるということもあり、あらためてプログラミング言語開発の原点、企業内エンジニアとして葛藤した日々、これからのRubyの展望、そしてプログラミングに情熱を燃やす若い世代へのメッセージなどを聞いた。

まつもとゆきひろ氏

Profile

まつもと ゆきひろ氏

1965年大阪府生まれ。鳥取県米子市で育つ。90年、筑波大学卒業後、新卒でシステム開発会社、日本タイムシェアに入社。同社在籍中の93年、プログラミング言語Rubyの開発に着手。94年、同じくシステム開発企業トヨタケーラムに転職し、95年にRubyを発表。Rubyが世界のプログラマたちから支持を集める中、97年にネットワーク応用通信研究所 主任研究員(現在はフェロー)に就任し、島根県松江市に移住。現在もmrubyを中心に自ら実装を続ける現役エンジニアでもある。一般財団法人Rubyアソシエーション理事長のほか、多くの企業の技術顧問を務める。

Rubyはなぜ普及したか。欠かせない人的ネットワークと時代の風

Rubyは1995年の12月に正式にリリースされました。このリリースから今年2020年がちょうど25年目になります。Rubyがこれほど世界の多くの人々に使われるようになったのはなぜか──よく聞かれる質問です。

できるだけ客観的に分析すれば、まずは言語自体の性能が良かったことが挙げられるでしょう。開発の当初から簡潔にプログラミングができて、生産性が高いという評価をいただいていました。なにより、私がRubyの言語仕様で最も重視したことは、使っていて楽しいこと。それが多くのプログラマに理解されたのだと思います。

ただ、それだけでは十分ではありません。Rubyを公開して皆さんに使ってもらううちに、Rubyのコミュニティが生まれた。それが非常に大きな役割を果たしました。開発初期は国内でのメーリングリストを活用したユーザーとの意見交換が重要でした。その後、海外のプログラマがRubyを見つけて周囲の人に紹介したことで、海外コミュニティが立ち上がるきっかけを作ってくれました。

Rubyに関する最初の本は、2000年に英語で書かれたものです。そして、2001年には初めての国際的なRubyカンファレンスがアメリカで開催されます。現在の「RubiKaigi」の前身にあたるもので、2019年で19回目を迎えました。

2001年デンマークで開かれたカンファレンスをボランティアで手伝ってくれた学生だったDavid Heinemier Hanson(通称DHH)が、その4年後にRubyを使ったWebアプリケーションフレームワーク、「Ruby on Rails」を発表することになります。コミュニティが形成され、そこから新しい実装が生まれ、さらにコミュニティが広がる。そうした好循環が回るようになりました。

Rubyはプログラミング言語ですから、そもそも自然言語のような国境や文化の壁がない。特にRubyを公開してからは、利用者が日本だけで留まってしまうのはもったいないと思い、早くから英語でドキュメントを書いたり、海外に出かけたりしていました。Rubyに価値を感じてもらえるのであれば、どこの国の人にも自由に使ってほしい。日本だけを見ていたら、現在のような形には決してならなかったと思います。

まつもとゆきひろ氏

もう一つ、Rubyの普及を後押ししたのは時代の流れだと思います。Rubyをリリースした1995年前後は、存知のようにWorld Wide Webが一般の一人も知られるようになり、Windows95が登場した年。Windows95は他のソフトウェアを買わなくても、とりあえずインターネットに繋げることができる最初のOSでした。

95年前後にはJavaやJavaScript、PHPも登場しています。つまり、プログラミング言語を巡る環境がWebにシフトした時期でもあるんです。それがプログラミング言語そのものにも影響を与え、言語の世代交代という現象が生まれたのです。インターネットを取り巻く環境の変化。それに適応した言語が知名度を上げるという状況。そうした時代の真っ直中に登場した言語の一つがRubyだったのです。

Rubyが最初からオープンソースとして開発されたことも、Rubyが広まる原動力になったことはたしかでしょう。オープンソースという言葉が登場したのは1997年で、Ruby公開よりも少し後なんですが、それ以前からフリーソフトウェアという言葉はあった。私は学生時代から活用してきたし、実際にフリーソフトウェアの開発に携わることもありました。

つまり長年に渡るフリーソフトやオープンソースの活動を通して、ソフトウェア開発、とりわけプログラミング言語の開発はかくあるべしという理解があり、それを踏まえたコミュニティ運営を志向してきた。そのことが、普及に一役買ったのかもしれません。

もっと快適になるRuby3.0。これからも旗を振り続ける

Rubyの開発を通して、私は世界中のプログラマと親しく付き合うようになりました。プログラマ一人ひとりを見れば、国によって能力や志向性が違うということはありません。少なくとも、Rubyに魅力を感じているという一点ではみな共通です。

ただ、プログラマを取り巻く社会環境の違い、プログラマという職業への社会的評価においては、国ごとに違いがあると感じています。日本では最近でこそ改善されていますが、かつてプログラマの社会的評価は決して高いものではありませんでした。

ちなみに欧米では、プログラマやソフトウェア開発者は「モテる」職業なんです。個人差はもちろんありますが、全体としては社会的に評価されているし、給料も高い。なにより頭のいい人が多いというイメージがある。

だから、女性が恋人として付き合う、あるいは生涯の伴侶としてパートナーを選ぼうというときに、プログラマという職業は条件の一つに数えられるんです。これが日本ではどうでしょう。「彼(彼女)はプログラマだからモテるんだよね」という話は、残念ながらあまり聞かないですよね(笑)。そういう社会環境がもっと変わっていけばいいなと思います。

まつもとゆきひろ氏

2020年はRuby公開から25周年という節目。これからRubyがどんな発展をしていくのか、私自身が楽しみでもあります。「Ruby3」の構想はすでに発表しており、2020年内にはリリースする予定です。Rubyの良さといわれている、簡潔にプログラムが書ける点、生産性が高く、使っていて楽しいという長所をもっと伸ばしていきます。

ある種のベンチマークでは、すでに性能やスピードが3倍に向上することが実証されています。今後はさらに、Rubyで開発したソフトウェアそのものの性能も良くしたい。大きく言えば、生産性と性能の向上という2つの方向性でのバージョンアップになると思います。

Rubyはコンピュータリソースのパワーが巨大になり、ネットワークのスピードが向上し、クラウドコンピューティングが当たり前になるといったテクノロジーの進化にきちんと対応できるプログラミング言語であり続けたいと思います。Rubyの開発にはほとんどの人がボランティアで参加しています。コミットすること自体が面白いし、自分が日常的に使うツールが改善されるのは嬉しいからという動機がほとんどでしょう。

しかし、それもRubyという言語が、テクノロジーの進化にきちんと対応しているからこそ。どんな言語でも、ひとたび時代から取り残されると、後は衰退しかない。言語開発そのものが求心力を失えば、ボランティアで参加している開発者たちは去っていきます。

そうはならないように、私はこれからもRubyの旗を掲げ、Rubyが衰退することがないように、その旗を振り続けていきたいと思います。

Rubyの未来を広げる「mruby」の面白さと可能性

プログラミング言語のRubyには、実装方法などによっていくつかの種類があります。私がもともと開発したRubyは、C言語で実装されているので、厳密には「CRuby」と呼ばれています。実は私自身はすでにCRubyの開発からはほとんど手を引いているんです。デザインの決定はしますが、実装には関わっていない。つまり、CRubyに関しては、あくまでもプログラムデザイナーとしてのまつもとなんです。

ただ、基本的には私もプログラマですから、何らかの形で実装には関わり続けたい。その意味で、現在プログラマとして注力しているのが「mruby」ですね。組み込みシステム向けの軽量なRuby言語処理系。このプロジェクトは私自身がリーダーを務めており、100人以上がこのプロジェクトに貢献しています。

コンピュータはもちろん、ウェアラブルデバイスや家電製品、生活のさまざまなシーンに使われるデジタルデバイスは小型化し、同時にソフトウェアを搭載するようになってきました。デバイス開発におけるソフトウェア開発の比重が以前とは比べものにならないぐらい大きくなっており、ソフトウェアの生産性が重視されるようになりました。

まつもとゆきひろ氏

ところが従来のRubyは、もともとPCやサーバーで使うことを前提にしていましたから、大きなメモリが必須条件。メモリが限られている小型デバイスで動かすには、メモリが足りないし、機能も多すぎるのです。そこで、省メモリであり、機能を必要に応じて外せることができるようにモジュール化したRubyがあるべきだと考えました。2010年からmrubyの開発に着手し、2012年からはオープンソースとして公開しています。

実装例は世界中で増えていて、例えばブラジルのベンチャー企業は、クレジットカード認証に使うペイメントデバイスの中にmrubyを組み込んでいます。Webサーバーソフトウェアの中にmrubyを組み込んで、ソフトウェアのコントロールをRubyで行う実装例もあります。人工衛星のコントローラーをmrubyで書いているベンチャー企業があって、近々その衛星が打ち上げられるそうです。いよいよ、宇宙でもRubyが活躍する時代が来たということですね。

もちろん、mrubyはRubyそのものを置き換えるものではありませんが、新たな実装方法を考えることで、その用途を拡大することができます。その意味で、Rubyファミリーにはまだまだ大きな未来が広がっていると思います。

私もそろそろ50代半ばにさしかかります。コンピュータ企業に就職した大学時代の同期たちは、みな管理職になったら「コードなんて全然書いていない」と言うんです。私はそれが嫌だったら、趣味でもいいからコードを書けばいいのにと思います。ソースコードを書いたり、新しい言語を構想して実装するのはいくつになっても楽しいものです。この楽しみだけは誰にも奪われたくないですね。