「『俺ってスゲェ!』と思える言語を作りたかった」
Ruby作者まつもとゆきひろ氏2万字インタビュー
2016年09月12日 14時00分更新
2010年代は大企業が言語を作るようになった
──Rubyは3つ目の言語に当たるんでしょうか?
まつもと「名前が決まってないとかアイディアだけも数えると、Rubyを含め10個くらいは作りました。ただ、アイディアだけじゃ作ったって言わないですよね」
──そんなに沢山!
まつもと「名前言うの恥ずかしいんですけど、Rubyの前は、tish(ティッシュ)っていうシェルを意識したものを作っていました。その時は名前を決めて、ほんのちょっとコード書いただけですね。学生の頃、Classicの前に考えていたのは、逆ポーランド記法ってあるじゃないですか、オペランドが来て一番最後に命令が来る。でも、ForthとかPostscriptとか可読性が低いので、関数名は、Lispみたいに前に来たらいいよねって考えてて、逆逆ポーランド記法というのを考案しました。引数の数が分かっていたらカッコがいらないわけですね。ところが、あとから調べたら元々ポーランド記法ってそういうものらしいんですよ。だから、オリジナルのポーランド記法を再発明しているだけだったていう(笑)。「逆逆」っていう時点でおかしいなって薄々感じてたんですけど。Lispからカッコを除くのにはまっていた時期があったんですね」
──Lispといえばカッコなのに。
まつもと「だからこそカッコを書きたくなかったっていうか。これも後から気づいたんですけど、LOGOっていう言語があってこれもLispっぽいんですが、これが関数が何個引数を取るかの情報があるからカッコなくても書けるよって文法なんですよ。逆逆ポーランド記法とかすごいアイディア思いついたぞと思ったらもうあるじゃん!それどころかLOGOみたいに有名な言語で採用されてるっていう」
──世界中にどれくらい言語ってあるんですかね?
まつもと「大学の図書館に、コンパイラのリストがあってバベルの塔が表紙だったのですが(笑)。それには、既に何百も載っていましたね」
──バベルの塔いいですね(人類はバベルの塔という不遜な建築物を作ったので罰として世界中で異なる言葉を使わざるをえなくなった)。
まつもと「その後インターネットで見つけた“List of compilers and interpreters”というサイトがあって3,000くらい載せていました。当然、大学生や大学院生が論文のために作った言語はほとんど載っていないので、そういったものを含めればきっと何万にもなるでしょうね。そのサイトを最後に見たのは20年ほど前ですけど。ちなみに、当時、僕の言語のRubyはまだ生まれたばかりで載っていないんですけど、そのときRubyという名前の言語がすでに3つくらい載っていました。それぞれ全然別言語で」
──ええっ、やっぱりPerlに触発されて。
まつもと「そうでもない感じですけど」
──誰も管理してないから。
まつもと「そうですね。流行ったもん勝ちですね(笑)。」
──昔は、プログラミング言語の数って知れていたと思うんですけど、いまは増え方が半端じゃないという気がするんですが。
まつもと「いや、たぶんそんなことはないと思いますね。どちらかというと、95年が豊作の年なんですね。Javaが出て、Rubyが出て、PHPが出て、Javascriptが出て、この後が少し停滞したんですね。どちらかというと、元のペースに戻った。60年代、70年代にも、膨大な数のプログラミング言語があったんですよ」
──淘汰されただけなんですね。
まつもと「コンピュータの普及でたくさんの人がプログラミングするようになったので、母集団が大きくなったことで総数は大きくなるというのはありますけどね。ただ、2010年代の言語って、個人が作ったものは割と目立たないんですね。割と新しめの言語で目立っているものはグーグルが作ったGoとか、アップルが作ったSwiftとか、Facebookが作ったHackとか、マイクロソフトはTypeScript作りましたね。企業から出てくることのほうが多いですよね。
──しかも、“GAMFA”(グーグル、アップル、マイクロソフト、フェイスブック、アマゾン)というようなプラットフォーマーから出てきている。
まつもと「そうですね。20年前みたいに僕とかラリー・ウォールみたいな、個人が言語を作ってみましたというのは意外に目立たなくなってきているんですよね」
──なんかつまんないような気がしますね。
まつもと「そうなんですよ。今がそういう時代なのかもしれないですけどね」
──95年は、なぜプログラミング言語がそんなに豊作だったんでしょう?
まつもと「インターネットだと思いますね。動的なウェブサイトを構築したいということでプログラミング言語が欲しくなった」
──Javaなんかは、ネットと切っても切り離せない存在ですからね。
まつもと「そうですね。インターネットが一般化して、言語への要求が変化した時に、それよりもちょっと前から開発されていた時代にフィットした言語がメジャーになっていったんじゃないかと。スタートアップにしても言語にしても、95年から数年間の間に大きな変化があったんですね」
──それが、10年代になると巨大プラットフォーマーが作るものになった。
まつもと「それってゲームにも言えることで、『マイコンBASICマガジン』とかに載っている100行くらいのプログラムがゲームだった時代から、いまはゲームも映画一本撮れるような億円単位のお金で作っている。プログラミング言語も同じで、GoogleやMicrosoftが投資して、完成度の高いものが出てきてはじめて認知される。個人でやるとすると10年、20年とかかかるので、問題なのは”スピード感”なんじゃないかなとも思っています」
──でも、ゲームだとUnityだとか優れたツールが出てきたので、逆に、インディーズで個人でもすごく凝ったものが作れるようになってきています。環境がそろって、少し揺り戻しが起きているようにも見えます。
まつもと「言語も、ツールがそろってきたのでまた揺り戻しみたいのが起きたらいいなぁと思っていますけど」。
──まつもとさんも、Streemを『日経Linux』の連載の中で作られているじゃないですか。
まつもと「細々とやってますけど、はい」
まつもとゆきひろ氏の開発した言語年表 | |
---|---|
1982年 (高校2年) | ALPHA(LISPとPascalの影響を受けた言語) |
1988年 | 逆逆ポーランド記法(ポーランド記法を再発明しただけだった) |
1989年 | Classic(Eiffelのオブジェクト機能をCに入れ、違うベクトルで進化させたもの) |
1991年 | tish(シェルを意識したもの) |
1993年 | Ruby |
(次ページ、「俺ってスゲェ!って言語はなんだろうと思いながら作っていた」に続く)
この連載の記事
-
第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アプリ開発を始めよう! - この連載の一覧へ