転職・求人DODAエンジニア IT/トップ > 転職情報・成功ガイド > 三年予測 > Ruby言語開発者 まつもとゆきひろ 氏
掲載日:2014.2.24
このエントリーをはてなブックマークに追加

三年予測ートップリーダーと考えるエンジニアの未来ー


新人時代にC言語をオブジェクト指向に拡張

大学卒業後、職業プログラマの道へ進んだ。多くのプログラマと違っていたのは、社内向けのソフトウェア環境を開発する部署で働いたことだ。「顧客の注文に従ってアプリケーションプログラムを書いたことはありません」と明かす。
入社1年目のことだ。C言語に自作のOOP(オブジェクト指向プログラミング)ライブラリを組み合わせる開発手法を採用した。そこまでして、オブジェクト指向プログラミングで開発したかったのだ。「今から考えると、入社1年目の新人が作ったライブラリを製品に組み込んでいた訳で、フリーダムな会社でした」と笑う。

「暇だったので」Rubyを開発

やがてバブル崩壊がやってきた。社内向けソフト開発の仕事はなくなり、そのサポートが主な仕事になった。「暇になってしまった」。目の前にはUNIXマシンが遊んでいる。この時代のUNIXマシンは、まだまだ個人では手が出せない価格だった。そのUNIXマシン上で作ったのが、Ruby言語だ。
最初は1人で作り始めた。1994年にα版を限定的に公開するまでは、利用者は3人だった。1995年、Ruby言語はインターネットで一般公開された。オープンソースなので、修正プログラム(パッチ)を開発して送ってくれる人も出てきた。だが、Rubyは依然として1人のプロジェクトだった。
やがて、Ruby言語のソースコードはバージョン管理システムCVSのリポジトリにより公開されるようになり、複数のメンバーがコミット権を持つようになった。Ruby開発者コミュニティはやがて世界中に広がった。

最初で最大のハードル

「Ruby言語の開発で飽きたり、辛く感じたりすることはなかった」と言い切る。それでも大きなハードルはあった。Rubyが動き出すまでの半年間だ。
「あの半年だけは頑張ったと思う」
Ruby言語は純粋なオブジェクト指向言語なので、数値や文字列を含めすべてをオブジェクトとして扱う。"Hello, World!"の文字列を表示するだけの最も簡単なプログラムを動かすにも、まずオブジェクトを管理する枠組みを作り、最小限必要なクラス群を作り、さらにI/Oライブラリを作らなければならない。この段階に到達するまでに半年を要したのだ。Ruby言語で本格的なプログラムを動かすのに欠かせないGC(ガーベジコレクション)機構を組み込むのはその後のことになる。
表示された"Hello, World!"を見て、「すごいことをした!」と感じた。この段階ではまだ最低限の機能しか備わっていないのだが、開発した本人の目だけには、Rubyが一人前に成長した姿が見えていたからだ。
「それ以降は楽でした。プログラムが動かせるから。短い時間で得られる達成感があることで、持続できた」
メキシコオリンピックのマラソン銀メダリストである君原健二の有名な言葉、「苦しくなったときは、あの電柱まで走ろう」の考え方に似ている。遠いゴールではなく「次の電柱」という短い目標を意識して走るのだ。そうやって、20年以上に渡りRuby言語開発を続けてきたのだ。「ただし、最初の電柱までが長かったんですけどね」と笑う。

「新しい」ものではなく「気分がよい」ものを

Rubyの開発で特に目を引くのが、開発者個人の価値観が濃厚に反映されていることだ。Ruby言語は、新規性や性能よりも「気持ちよさ」や「自由度」を重視して設計されている。まつもとゆきひろの有名な言葉の一つに「Rubyをキメると気持ちいい!」というものがある。「新しいものを作ろうとは思っていない。気分がよく開発できる言語を作りたい」のだ。
Rubyは極めて自由度が高い言語だ。DSL(ドメイン特化言語)としての利用例があることから分かるように、Ruby言語自体を作り替え、あたかも別の言語であるかのように利用することすらできる。「Rubyの想定ユーザーは私自身。自分の手を縛りたくはない。プログラマには最大限の自由を与えたい」。
もう一つ重視する点が「プログラミング言語への愛があるかどうか」だ。特定分野に特化して設計された言語よりも、プログラミング言語として隅々まで配慮されている汎用言語が好みだという。「Rubyには目的はない。科学技術計算とかWeb開発とか、特定の目的に偏った言語ではない」。そしてこう付け加えた。「『言語愛』がない言語には魅力を感じない」。
まつもとゆきひろが、自分自身が作り出したRuby言語に愛情を注いでいる理由は──プログラミング用語でいう「再帰的」な言い回しになってしまうが──「言語愛」にあふれた言語を、自分自身が求めているからとも言えるのだ。

「プログラマの「魂の浮力」

プログラマによって、情熱を注ぐ対象はさまざまだ。まつもとゆきひろのように、特定のOS(オペレーティングシステム)やCPUに依存しないプログラミング言語処理系に情熱を注ぐ人もいる。OSの実装に情熱を注ぐ人もいれば、ミドルウェアやフレームワークに情熱を注ぐ人もいる。人によっては情熱を注ぐ対象が情報システムの設計やアプリケーションプログラムの開発である場合もある。当コラムの前回に登場した竹内郁雄は、CPUの内部動作を記述するマイクロプログラミングによる実時間GC(ガーベジコレクション)の実装という「低レベル」のプログラミングに大きな情熱を注ぎ込んだ。
まつもとゆきひろは、このようなプログラマの情熱の所在の違いを、アルキメデスの原理を使ったガリレオ温度計になぞらえる。ガリレオ温度計では、液体の中に何個かの「浮き」がそれぞれ違う高さに浮かんでいる。「浮き」はそれぞれの比重(すなわち浮力)が異なるように作られている。気温が変われば液体の密度、つまり比重が変わり、これによりどの「浮き」が浮かぶのか、あるいは沈むのかが変わる。浮きの高さを見て気温を知るのだ。
このガリレオ温度計のように、プログラマには「魂の浮力」があり、それぞれ最も情熱を注げる場所でプログラミングをするようになる──というのだ。例えば、まつもとゆきひろ自身はアプリケーションには関心がないそうだ。とはいえ、メール閲覧ソフトは自作のものを使っているのだが。
ある種の、突出した仕事をするプログラマにとっては「魂の浮力」にふさわしい居場所を見つけること──つまり自分を偽らないことが大事なのだろう。
新分野にチャレンジしたmruby
このエントリーをはてなブックマークに追加
DODAエージェントサービス 専任のキャリアアドバイザーが、キャリアアドバイスから求人紹介、退職フォローまでを一貫してサポートします。ご利用になりたい方は、こちらからご登録をお願いします。はじめて退職する方のために3分でわかるエージェントサービスのメリットを紹介 エージェントサービスに申し込む(無料) 3分でわかるエージェントサービスのメリット
ITエンジニア・クリエイター合格診断