「『俺ってスゲェ!』と思える言語を作りたかった」
Ruby作者まつもとゆきひろ氏2万字インタビュー
2016年09月12日 14時00分更新
高校生のとき“僕の考えた最強の言語”をノートに書いていた
──つまり、ポケコンの時代があった。
まつもと「そうですね、それが最初ですね。ところが、本を読んでいるうちにもうちょっと高級な言語に関心が出てきました。でも、当時、CコンパイラとかPascalコンパイラを買おうとしたら20万円くらいするので、高校生にはぜんぜん現実的じゃないんですよ。いつか使えたらなあって妄想するだけ。それで、逆に、(8ビットパソコンなど)お手頃なコンピューターというものにはあんまり興味がなかった」
──はあ、なるほど。
まつもと「最初に読んだのが工学社の『Pascal入門』という本ですが、独学で言語を勉強しているうち、こんな言語でプログラムを書いてみたいなとか、さらには世の中にこんなにプログラミング言語があるなら自分で作ってもいいんじゃないかと思うようになりました」
──そんなふうにプログラミングに興味を持つようになられたのはなぜですかね?
まつもと「子供が手に入るおもちゃで、それ自体が判断するものって他にないんですよ。たとえば、ラジコンは、右に曲がれって言えば右に曲がるだけで自分で判断しているわけではない。それに対して、コンピュータは「こういう条件だったらこうしろ」など、ロジック的に命令することができてその通りに動きますよね。それが面白い。当時はペットを飼っている感覚でした。「お手」っていうとお手をしてくれるみたいな、ちょっと生き物をしつけているみたいで可愛い存在に思えたんです」
──それで、プログラミング言語の本を読んでいた。
まつもと「『やさしいコンパイラの作り方』っていう本とかね、やさしいって書いてるのに全然やさしくない。大学の教科書ですから。作る言語がやさしいだけで、作り方がやさしいというわけではなかった(笑)」
──ポケコンしか持ってないのにコンパイラの作り方!
まつもと「そうですね(笑)。でもやっぱわかんなかったですね。わかんないながら読んでましたね。“解析木”ってなんだろう……みたいな。高校時代ですね」
──ためしに、紙にプログラミング書いてみるとかそういうことはやっていたんじゃないですか?
まつもと「やっていましたね。コード書いたりしていました。Pascal を勉強した時はPascalを使って紙に書いたり……”僕の考えた最強の言語”みたいなものをノートに書いていました(笑)」
──“最強の言語”! どんなのですか?
まつもと「そのノートはどこに行ったかわかんないのですが、Pascalの影響を結構受けていた、ような気がします。結局何がしたかったかというと、ユーザー定義関数とか。当時のBASICだとできないんですね。データ構造も配列と文字列しかありませんし」
──関数ができるとその言語がすごく成長したような感じになりますよね。
まつもと「そうなんですよ、それが欲しくて。Pascalを見てこれは素晴らしいってなって……あと、当時、Lispの本も読んでて、マクロとかで言語構文まで増やせるので、その辺がいいなと思って。だから、LispとPascalの影響を受けた言語だったような気がします」
──その“最強の言語”って、名前はないんですか?
まつもと「恥ずかしくて今まで誰にも言ったことなんですよ。動きもしない言語に名前をつけていたわけですし」
──いいじゃないですか。名前教えてくださいよ。
まつもと「名前は、“ALPHA”でした(笑)」
──なるほどそれはカッコいいですねぇ! 最強の言語で最初に作ったからアルファと。その時代にLispとPascalの要素が入ってるって相当かっこいいはずですよね。
まつもと「と、思いますけどね。あと、Cという言語があるっていうのは当時から名前は知ってたんですけど、実際に使うところまでは行ってませんでしたね。そういえば、あの頃はPascalとCが対立していましたね。勝負はつきましたけど」
──たしかにそうでした。実際にPascalを使われたのは?
まつもと「大学に入って2年か3年の実習の時にTurboPascalを使ったのでその時ですね。大学に入るまでは、あまり「ちゃんとした」プログラミング経験がなくて。高校3年の頃に、父がこれまた仕事に使うって名目で“PC-8801無印”を購入してきたので、それで一応パソコン利用経験はあったのですが、そうはいっても、雑誌にのっているリストをうちこんでちょっと動かしたりという感じですから。大学に入る前は、父のガジェット好きに影響された部分が大きくて、それがなかったらいまの僕はないですね(笑)」
──88も使われてたわけだ。
まつもと「実は、雑誌に16進ダンプでLispがのっていたことがあって動かしてみたことがありました。ところが、あんなに憧れていたLispも実際に動かしてみると意外と楽しくなかった。マシンのスペックも当時は貧弱ですし、ただ単にLispが動いてちいさなプログラムを打ち込みました、くらいだとそんなにやることないなぁと。それよりは仕様書を見て、ここが美しいとか見ているほうが楽しかった」
──審美眼的なプログラマーなんだ。
まつもと「言語の仕様書についてだと、大学に入る前に“Ada”の仕様書を読んだことがありましたが、これは難しいなぁと。共立出版から出ていたのを、ツテを頼って借りてきたんですけど(笑)。なんでもできる言語。最初は、ありとあらゆるプロはこれでやるんだってノリでしたよね。相変わらず仕様書を見るだけなんですが」
──国防総省生まれという鳴り物入りな感じでしたよね。プログラミング言語の歴史の一幕ですよね。
注釈
【コンパイラ】
コンピューターが直接実行できる機械語を人間が書くのは大変だし間違いも起こりやすい。そこで登場するのがプログラミング言語で、それを機械語に一括して翻訳するのがコンパイラというプログラムの仕事。なお実行時に逐次翻訳するものはインタープリタと呼ばれる。
【C】
1972年にベル研究所で開発されたプログラミング言語。大学や研究機関で使われその後インターネットにもつながるUNIXオペレーティングシステムとともに発展。UNIXをはじめとする現代の多くのOSではシステムに近いところを直接扱えるため、スキルがあれば実行スピードが速いプログラムを書ける。
【Pascal】
1970年にスイスのチューリッヒ工科大学のニクラウス・ヴィルトが開発。簡素かつ厳密な言語仕様を持つ教育用プログラミング言語として誕生したが、実用的で優れたアプリケーションも多く生み出している。
【LISP】
1958年にMITの人工知能研究で有名なジョン・マッカーシーによって考案された。歴史のある言語にもかかわらず独特の世界を作っており、Common LispやSchemeという形で現在でも根強い人気がある。
【PC-8801】
1981年にNECから発売されたパソコン。シャープ、富士通、日立などの同時期に発売された各社の8ビット機とともに1980年代の主にホビーシーンで活躍した。
【Ada】
米国国防総省が1983年にMIL規格としたプログラミング言語。信頼性・保守性を重視しており、言語仕様の大きさ厳密さは有名。その名前は、史上初のプログラマとされる19世紀の詩人バイロンの娘エイダ・ラブレスにちなむ。
(次ページ、「万博を理由に筑波大、数学は単位が危なかった」に続く)

この連載の記事
- 第28回 U-22で経済産業大臣賞など4冠の中学生上原直人(15歳)さんに聞いた
- 第27回 教育研究家とケンカして作った子どもプログラマー向けキーボードとは?
- 第26回 まだ間に合う! SDLアプリコンテスト応募へ、サンプルコードを一挙公開!!
- 第25回 アプリ開発者のみなさま! SLDアプリコンテスト〆切迫る
- 第24回 クルマは巨大なIoTだ! SDLハッカソンレポート
- 第23回 PyCon JP 2018レポート~参加者1000名超!過去最大の規模で開催~
- 第22回 『みんパイ』著者が、Pythonはなぜ流行ったのかを考える
- 第21回 イノベーションが強く求められている時代だからこそ「非エンジニアがプログラミングを学ぶべき」な理由
- 第20回 プログラミング言語「Kotlin」でAndroidアプリ開発を始めよう!
- 第19回 どんどん時代の波に乗った商品をやらなくてはだめだ――追悼・元シャープ副社長佐々木正氏
- 第18回 「どうして企業でのAI導入がつまずいてしまうのか?」について真剣に考えてみた
- この連載の一覧へ