「『俺ってスゲェ!』と思える言語を作りたかった」
Ruby作者まつもとゆきひろ氏2万字インタビュー
2016年09月12日 14時00分更新
万博を理由に筑波大、数学は単位が危なかった
──確か筑波大学でしたよね? 数ある大学の中でなぜ筑波大学を選んだのでしょうか?
まつもと「当時は今ほどコンピュータサイエンスを学べる大学って多くなかったんですよ。つまり、コンピュータサイエンスの学科があって自分の学力に見合った大学を探したら筑波だったんですね。それ以上だと東大、京大、阪大レベルになっちゃって、ちょっと僕には成績的に届かない(笑)。もう1つは、つくば万博があったからですかね。至近距離で万博が(笑)。あとは、田舎出身なので東京のど真ん中といった場所は無理かなとか考えたんですね」
──なんと、万博が理由とは。
まつもと「“科学万博“というくらいだったのでもちろん興味はありましたね。科学は大好きなので」
──大学ではどんな学生でした?
まつもと「普通の学生でした、と思います。勉強は割と真面目にしていたんじゃないですかね。でも成績には偏りがあって、プログラミングは得意で成績が良かったんですけど、数学は単位が危なかったですね」
──なるほど、数学は苦手だった。ちなみに授業ではどのようなことを学んだんですか?
まつもと「授業では主にプログラミングに力を入れて学んでいましたね。Pascalで簡単なデータベースプログラムを作りましょうといった実習が記憶に残ってます。アセンブラやPL/Iもやりましたね。84年とかなのでミニコンもありました。プログラミング言語自体を学ぶ授業はなかったので図書館で本を読んで学んでいました。田舎だと資料がなかなか手に入らないんですけど、大学の図書館に行けば、本や論文、なんでも読むことができますからね。ここは天国じゃないのかと思いましたね(笑)」
──じゃあ言語自体については完全に独学で覚えたんですね。
まつもと「そうですね。座学で簡単に触れることはあっても、授業で言語を教えてもらった覚えはないです」
──サークルなどには入ってらしたんでしょうか?
まつもと「大学生の頃は家にPCがなかったので、大学の実習室に入り浸ってPCを触っていました。サークルには入っていませんでした」
──80年代も、やがてTurbo Pascalなんかが出てきてその後はQuick Cも出てきたりって時代だから、それまで10~20万円した言語が5~6万円で買えるようになりましたよね。
まつもと「Turbo Pascalは59,800円でしたからね、画期的に安くなりました。Turbo Cも59,800円で。Quick Cは3万くらいでしたかね」
──マイクロソフトが、Quick Cを配れないかってことで月刊アスキーに相談に来たことがあったんですよ。秋葉原で配る案だったのですが、結局、それがきっかけで雑誌付録として5インチフロッピーディスクをつけたんですね。89年だと思いますが、その頃になると、パソコン通信もさかんになってプログラム作品の発表の場も広がってきました。UNIXのコミュニティには参加していなかったのですか?
まつもと「大学の3年か4年の頃には、fjにポストしたりしていました。ネットニュースは使っていましたね」
注釈
【アセンブラ】
コンピューターが直接実行できる機械語の命令と基本的に1対1で対応するプログラミング言語、またいはその翻訳プログラム。“アセンブリ言語”とも。
【PL/I】
1964年に、米国IBMが科学技術用のFORTRANや商業用のCOBOLに続いて開発したプログラミング言語。その両方に使えることから名前は「programming language one」の意味でピーエル・ワンと読む。
【Turbo Pascal】
1983年、米ボーランド社が発売したPascalの統合開発環境とコンパイラ。その利便性や性能に加えて価格の安さで多くのファンを生んだ。後にTurbo Prolog、Turbo Cなども発売される。
【Quick C】
1989年に、それまでMicrosoft Cを発売してきたマイクロソフトが、廉価なTurbo Cの人気に対抗すべく発売。
【UNIX】
1969年に、ベル研究所で開発が始まったオペレーティングシステム、およびその流れをいう。移植性にすぐれたことから大学や研究機関などで使われ、コミュティが発達、オープンソース、インターネットなど現在のコンピューターを構成する主要な事柄と深く関係する。
【fj】
ネットニュースのトップカテゴリの1つで、主に日本の参加者が投稿。ネットニュースとは、テキストによる一種の電子掲示板システムで、1980年代には研究機関をむすぶJUNETのユーザーが参加していた。
まつもとゆきひろには未完のまぼろしの言語があった
──大学の頃は最強の言語というのは、作っていなかったんですか?
まつもと「大学3年生の時にPascalよりCの方がいいやとなりまして、大学でワークステーションのSun-3が自由に使えるようになったのでCで色々プログラムを書いていた気がします。この頃はあんまり最強言語は追求してなかったような」
──お父さまに頼まれて作ったように「これ作ってよ」というお話はあったのでしょうか?
まつもと「もう一人暮らししてましたからね。大学生の頃は友人からの紹介を受けて建設会社でプログラミングのアルバイトをしました。どのくらいの水位だとどのくらいの圧力がかかるだとかのダムの水量計算をするプログラムです。マシンはMS-DOS PCで、確かTurbo Cで作りました」
──では、その時から将来はプログラマーにとお考えだったんですか?
まつもと「いや、プログラムでご飯が食べれたらいいなくらいにしか考えてなかったですね」
──大学生の時は将来何になりたいとか考えてたんですか?
まつもと「うーん、今も昔も長期的なことはあんまり考えていないんですねぇ(笑)」
──その頃も、言語は作っていたんですよね?
まつもと「卒論で作りましたよ。Adaをシンプルにしたものにオブジェクト指向機能を足した感じのEiffelという言語に当時ハマっていたんですけど、その頃はもうだいぶCに洗脳されていたのでベースがAdaとかPascalっぽい文法なのが気に入らなくて。で、同じようなことをCに対してやったら何ができるかっていうような発想で言語をデザインしました。当時から、当然C++はあるんですけど、C++のオブジェクト機能ってSmalltalk的な伝統的なオブジェクト指向っていうよりはSimulaからの別系列なので発想が大分違っているんですよ。それで、さっきのEiffelっていう言語の考えをCにブチ込んで、C++を違う方向で進化したらどうなるのかっていうのを見たかったんです」
──言語名は?
まつもと「聞くんですか?」
──聞きますよぉ(笑)。
まつもと「Classic(クラシック)という名前で、classっぽいcという意味です(笑)。これを卒業論文のテーマにしたんですね。でも、教授の評価はあまり高くなかったみたいです。というか、普通、卒論発表の時に学生が厳しい質問につまると教授が助け舟を出すものじゃないですか? でも、僕の場合は、勝手にやらせてもらっていたので助け舟が出ないんですよね。むしろ、一番厳しい質問したのが担当教授だったっていう」
──では、ご自身が今振り返って、「Classic」は言語としての出来は?
まつもと「まぁ、論文で書いていたレベルでは実際たいしたものではないんですけれど、あの言語をそのまま進歩させておけばそれなりに面白いものになってたかもしれないなぁとは思います」
──オブジェクト指向の一大潮流を考えると、その中ではどうなんですかね?
まつもと「面白いポジションだったと思うんですけど。でも、Eiffelのオブジェクト指向はメインストリームになりませんでしたからね。どちらかと言うとC++のオブジェクト指向か、Smalltalkのオブジェクト指向かどっちかっていう感じになりました。それぞれ、ちょっとずつ違いますね。Classicにも面白いアイディアが幾つもあった気がするんですけどね」
──幻の言語、違う歴史があったかもしれない。
注釈
【Sun-3】
1985年に、サン・マイクロシステムズが発売したUNIXワークステーションとサーバシリーズの名称。高性能低価格で、ワークステーションブームを牽引した。
【Eiffel】
1985年、フランスのバートランド・メイヤーが開発したオブジェクト指向プログラミング言語。Smalltalkとは異なる形で現代のオブジェクト指向技術に大きな影響を与えた言語。
【Simula】
1960年代にオスロのノルウェー計算センターで開発がはじまった最初期のオブジェクト指向プログラミング言語のひとつ。当初シミュレーションに用いられたが、のちに汎用言語となった。C++の設計に影響を与えている。
【Smalltalk】
ゼロックスのパロアルト研究所で開発され、1983年に発売されたオブジェクト指向プログラミング言語(およびその統合環境)。アップルMacintoshが影響されたAltoに出自がある。オジブェクト指向言語としてだけでなく動的型付き言語としても多くのプログラミング言語に大きな影響を与えた。現在でもさまざまなシステム開発に利用されている。
【C++】
1983年、C言語の拡張として開発された汎用プログラミング言語。「しーぷらすぷらす」、あるいは「しーぷら」などと呼ばれる。
【クラス】
オブジェクトの設計図にあたるものをクラスといったり、データやメソッドを集めたものをクラスといったり、いろいろな意味で使われる用語。
(次ページ、「2010年代は大企業が言語を作るようになった」に続く)
この連載の記事
-
第30回
トピックス
『第九回技術書同人誌博覧会』が11月25日に開催 -
第29回
トピックス
「ChatGPTはどう変わろうとしているのか」を学ぶ講座、11月24日に開催 -
第28回
プログラミング+
U-22で経済産業大臣賞など4冠の中学生上原直人(15歳)さんに聞いた -
第27回
プログラミング+
教育研究家とケンカして作った子どもプログラマー向けキーボードとは? -
第26回
プログラミング+
まだ間に合う! SDLアプリコンテスト応募へ、サンプルコードを一挙公開!! -
第25回
プログラミング+
アプリ開発者のみなさま! SLDアプリコンテスト〆切迫る -
第24回
プログラミング+
クルマは巨大なIoTだ! SDLハッカソンレポート -
第23回
プログラミング+
PyCon JP 2018レポート~参加者1000名超!過去最大の規模で開催~ -
第22回
プログラミング+
『みんパイ』著者が、Pythonはなぜ流行ったのかを考える -
第21回
プログラミング+
イノベーションが強く求められている時代だからこそ「非エンジニアがプログラミングを学ぶべき」な理由 -
第20回
プログラミング+
プログラミング言語「Kotlin」でAndroidアプリ開発を始めよう! - この連載の一覧へ