DMM英会話ブログ編集部
(更新)
世界中に大勢のユーザーを抱える、日本産プログラミング言語 Ruby。その開発者である まつもとゆきひろ さんに、Ruby 開発の裏側と成功までの道のり、そして未来を生き抜くエンジニアさんへのアドバイスを伺いました。
ー プログラミング言語に興味を持ったキッカケはなんですか?
私が子供の頃は、コンピュータって全然一般的ではなかったんですよ。ものすごく尖った人だけが、NECのPC-8001 や SHARP の MZシリーズといった、パソコン時代の先駆けといえるコンピュータをやっていたんですが、私の知り合いにそれを持っている人は誰もいませんでした。
そんな頃、ガジェット好きだった父親がポケットコンピュータという機械を買ってきて。そこで初めて BASIC(プログラミング言語)に触れ、どんどんハマっていきました。
電卓にキーボードが付いたような小さなコンピュータを触りながら「いつかは本格的なパソコンが欲しいな」と思いつつ、プログラミングの雑誌や専門書を買って読んでは知識ばっかり身に付けていたんです。
ー お父さんが息子の将来を見抜いて、ポケットコンピュータをプレゼントしてくれたわけですね。
いや、父は完全に自分のために買っていたのですが、私にぶん捕られたんです(笑)
ー まつもとさんはそもそも、なぜ自分でプログラミング言語を作りたいと考えたのですか?
ある日、近所の本屋に行ったら「Pascal 入門」というプログラミング言語の本があったんですね。お小遣いで買って帰り読んでみると、今まで使っていたBASICより随分マシな言語だな、と思ったんです。
私が使っていたポケコンの BASIC って、小さい規模のプログラムしか作れなかったんですね。それに比べて Pascal は素晴らしいな、と。
当時、私はまだ高校生だったのですが、「プログラミング言語はどれも誰かが作ったもの。それなら、いつかは自分でも言語を作れるんじゃないか」と思うようになったんです。知識も無いし、コンピュータも持っていなかったのに(笑)
中2病みたいなもので、「僕の考える最強の言語」というノートを作って、そこにいろいろと書いていました。そのノート、今はもうどこかにいってしまったのですが……。
ー 残念。ぜひそのノートを見てみたかったです。
ー 本気で言語を開発しようと考える高校生なんて、他にいますかね?
私は高校を卒業後、情報系の大学に入ったんですね。これまでプログラミングには関心すらない友達ばっかりだった環境が、一気にクラスの全員がコンピュータ好きという状況になりました。中には、「有名な専門雑誌で記事を書きました」という人もいて、すごいなと。
でも、プログラミング言語を作ろうと考えている人は、クラスには一人もいなかった。そこで初めて、自分は圧倒的に少数派なんだと気づいたんです。
ー 大学では、言語開発の勉強を?
一応プログラミング言語の研究室には入ったんですが、そこでは新しい言語を作る勉強はできませんでした。例えば、既にある Fortran(プログラミング言語)をどうやって作るか、どうすれば性能が良くなるか、そういった研究をするんですね。私がやりたかった全く新規の言語開発ではなかったんです。
ー なぜ言語開発にそこまでのこだわりがあったのでしょうか?
私は、コンピュータの「ルールそのもの」に関心があったんです。「それを使って何を作るか」よりも、「こういうルールを決めるとより気分良くプログラミングできる、効率良く書ける」などといった、ルールそのものとそれが及ぼす影響にすごく関心があったんですね。
ー Rubyは、たくさんの人に使ってもらいたいという思いで開発したのですか?
いや、誰かに使ってもらおうとは全く考えていませんでしたね。ただ、何年もコツコツ続けていたらとりあえず使いものになったので、「どうぞお裾分け」くらいの気持ちでオープンにしたら、意外と広まったという感じですね。
もともとは自分のためのプログラミング言語。YouTube とかで爪楊枝を使って姫路城を作る人とかいますけど、それと同じノリですね(笑)
ー 開発はすべて一人でされたのですか?
まあ、趣味ですからね。結果的には一人でした。プログラミング言語を作りたいと人に言うと、「は? なにそれ?」という感じだったので。
ー Rubyを開発するにあたって、まつもとさんが一番最初にやったことは?
昔から言語の開発・習得の最初のステップとして「Hello World」という文字列を出力することをまず試みるんですね。そこから始めたわけですが、それって実はものすごく大変なことで。私はその「Hello World」を出すまでに半年くらいかかりました。
実際、その最初の半年間は特に大変でしたね。始めは全く何もない状態ですから、多少プログラムを書いただけでは動かないわけです。作ったものに対する喜び(=動いた!という実感)を得られない状態が続いて、正直しんどかったですね。
ー そんな中で、作るモチベーションを維持し続けられたのはなぜでしょう?
作業の1つ1つにちっちゃい目標をつくって、ちっちゃな達成感を得る。「あそこの電柱まで頑張ろう」の連続のような形で走り続けてきました。
とはいえ、やっぱり一番は「好き」だったからと思います。お金をもらっている訳でも、大儲けしたい訳でもない中でやり続けられたのは、「自分が楽しいと思えること」だったことが大きいですね。
ー これから新しい言語を開発したい! という人がいたら、どんなアドバイスをしますか?
とりあえず「続ける」こと。Ruby は開発してから20年が経ちますが、まだ業界では新参者扱いされることもあるんです。世の中には50年前から続く言語もあるほどで、つまり、言語開発とはすごく息の長いプロジェクトなんですね。
Ruby 自体も、皆に知ってもらえるまでに10年近くかかっている。とにかく成功するまでにはすごく長い時間が必要なので、「継続」はとても大切な要素です。
ー 「継続する」ためのコツはありますか?
あまり無理をしないことですかね。1ヶ月くらいのプロジェクトだったら何とか無理をしてでもやり遂げられるかもしれないですが、10年20年ってスパンだと無理し続けられないですよね。自然体でいくしかないと思っています。
ー まつもとさんと言えば英語が上手で有名ですが、エンジニアに英語力は必要なのでしょうか?
お客さんのために注文伺いをして、システム・エンジニアが設計して、それを元にプログラムを書く、という仕事をしているエンジニアさんって割合としては多いと思いますが、このやり方はこれから伸びないと思うんです。
クライアントが日本人で、上司も日本人で、ソフトウェア会社も日本人。そういう環境では、もう待遇が改善される余地があまり無いというか。
さらに言うと、ベースになっているテクノロジーのほとんどは、日本で開発されたものでは無いですよね。情報が日本語に翻訳されるのをいちいち待っていたら遅いんです。
情報のインプットだけでも、英文が読めるとかなり違う。あとは自分が発信する立場になったときにも、英語ができるかどうかで選択肢の幅が変わってきますね。
ー エンジニアさんにとって英語は、読めるだけでなく話せる必要もあると?
なきゃダメって訳ではないですよ。ただ、あった方が確実に選択肢は広がる。
「私は英語が嫌いなので避けて生きていきます」と決めたら、外資系で働く・海外で働くっていう選択肢はまず無くなるわけです。
あとは、知名度ってバリューだと思うのですが、日本語でしか情報発信をしていなければ、当然日本にしか広まらない。海外でも知られる存在になれば、それをバリューに変えることができると思うんです。
ー まつもとさん自身は、どのように英語を身に付けたのでしょうか?
大学2年生の時に、2年間休学してキリスト教の宣教師をしていたんです。
一緒に回る相棒やボスが外国人だったので、毎日ネイティブ・スピーカーと一緒に生活をしていました。英語を使う機会が多くなって、かなり話せるようになりましたね。
ー エンジニアとして英語が役立ったのはどんな時ですか?
2001年頃から Ruby が有名になってきて、海外のカンファレンス(学術会議)に呼ばれるようになったんです。そうすると、会場でいろんな人が話しかけてくるんですよね。その時はもう何年も英語を使う機会が無い状態だったので無理かと思っていたんですが、何とかコミュニケーションはとれました。
その後も海外に招待されることが年に5回くらいあり、そんな経験を10年間くらい繰り返していたら、徐々に上手くなってきました。
ー エンジニアさんの英語って、一般的な日常英会話とは違いますか?
そうでもないですよ。カンファレンス会場では雑談も多く、「今度日本に行くんだけどオススメのお店はどこ?」みたいに、ほとんどが日常会話です。コンピュータの専門用語はもともと英語だったりするので、「一般的な英語とエンジニアの英語は違う」っていう感覚ではなかったですね。
ー エンジニアにとって、英語力は強みになりますか?
現在の日本では、かなり強いと思いますね。
英語力は、いわゆるレア・カード。ゲームをひっくり返してしまうほどの強いパワーを秘めています。
ただ、それ一枚だけで勝負できるタイプではなくて、各人のエンジニアとしての得意なカードを充実させつつ、組み合わせて使うことで強さを発揮する。ぜひ、皆さんも手に入れて欲しいと思いますね。
ー まつもとさんがこれからチャレンジしたいことは何ですか?
ソフトウェア・エンジニアって、35歳で定年って言われたりするんです。歳をとるとエンジニアでいれなくなることって結構多いんですよ。35歳を過ぎたらプログラマーを卒業して、マネジメントやエグゼグティブへ移りましょう、みたいな。
個人的には、ソフトウェアの開発とプログラミング言語の開発は、私のライフワークとしてずっとやり続けていきたいですね。そういうキャリアパスが日本でもあり得るんだということを、示していけたらと思っています。
ー まつもとさん、貴重なお話をありがとうございました。