• はてなブックマークに追加
  • Yahoo!ブックマークに登録

【前編】数学が苦手でRubyを開発、「ヒット曲」の理由とは?

まつもとゆきひろ

茂木健一郎×まつもとゆきひろ
「言語デザイナーの脳」

脳科学者の茂木健一郎氏と、Rubyの開発者まつもとゆきひろ氏の対談が実現! その前編は「言語デザイナーの脳」です。プログラミングには数学的な要素が多くありますが、実はまつもとさん、数学が苦手とのこと。茂木さんが斬り込みます。

(取材・文 総研スタッフ/高橋マサシ 撮影/三浦健司) 作成日:12.09.03

どこから生まれる?100倍というプログラマの開発効率

茂木健一郎

茂木健一郎さん

まつもとゆきひろ

まつもとゆきひろさん

茂木 初めまして。茂木健一郎です。

まつもと 初めまして。まつもとゆきひろです。妻が茂木さんのファンなんです(笑)。

茂木 ありがとうございます(笑)。まつもとさんはプログラマであり、Rubyの開発者ですよね。
僕はプログラミングはBASIC、FORTLAN、C、C++くらいしかやっていなくて、それ以降の言語はほとんど触っていないのだけど、ハッカーのような友達に聞くと、プログラマの開発効率は人によって10倍、あるいは100倍の差が出るとか。それは本当ですか?

まつもと そう思います。

茂木 すると、まつもとさんのプログラミング能力は一般のエンジニアに比べて、100倍高い?

まつもと プログラミングには、閾値というものがあるんです。例えば、経験の浅いプログラマには開発の全貌が見えないので、どうやっていいかわからない。手も足も出ないことだってあります。
それが、見える範囲が広い別のプログラマなら、「ああ、できるよ」と簡単に達成できてしまう。その閾値を傍から見ると10倍、100倍という差になるのでしょう。
知識があったり、経験が豊かだったり、勘が鋭かったりするプログラマは、その閾を乗り越えられるわけです。

茂木 われわれ脳科学者の立場からすると、例えばモーツアルトのような天才を対象としたときに、「この人は特別だから」という仮説で片づけてしまうのは短絡的だと思うんです。僕は、必要条件と十分条件のどのような要素が組み合わさってモーツアルトになったのかに興味があります。
マルコム・グラッドウェルの書いた『アウトライアーズ』[日本語版『天才!成功する人々の法則』(講談社:勝間和代訳)]という本には、「1万時間の法則」(成功は1万時間の努力の積み重ねである)が出てきます。著名な成功者は特別な人だったのではなく努力家であり、いわばその閾値が1万時間だったという説ですが、その辺りをまつもとさんに伺いたいですね。

Rubyが開発できたのは、「メタ認知」能力が高いから?

茂木 そもそも、Rubyの開発前は、どのくらいのプログラミングに習熟していたのですか?

まつもと 中学校3年生で初めてプログラミング言語に触れて、最初はBASICを使っていました。次はPascalでしたが、当時はコンパイラが高くて、地方の貧乏学生には手が出せなかった(笑)。そこで、本を読んで学んだのですが、BASICとは設計発想が随分違うと気づきました。
興味を持って調べたら、もっともっと違う言語があるとわかった。世の中にはさまざまなプログラミング言語があり、それぞれが異なる発想でデザインされていることを知って、これは面白いと思ったんです。

茂木 Pascalの次は何を学んだのですか?

まつもと BASIC以降は「本で学んだ」わけですが、次がLisp、Smalltalk、Adaと続いて、ほかにはC、LOGO、Prolog……

茂木 2桁はいっているわけですね。やっぱり普通じゃない(笑)。僕も高校のときはBASICで重力シミュレーションみたいなプログラムを書いていましたし、プログラミング言語を使って何かを表現しようとする人は多いと思うけど、言語そのものに興味を持つ人は少ない気がします。

まつもと 何をつくるのかはどうでもよくて、言語自体にハマったんですよね。小学校6年生のときに父がワンボードマイコンを買ってきて、マシン語でしか動かないので数字を打ち込んだりしていましたが、プログラムには夢中にならなかった。

茂木 『アウトライアーズ』のように、まつもとさんにはプログラミングに1万時間を使って成功しているという認識はないのですね?

まつもと Rubyはたまたま世界に広がりましたけど、それまでの私は、人より少しできるくらいのプログラマだと自覚していて、周りの人がほめてくれるとこそばゆく感じるくらいのエンジニアでした。
また、私はRubyを開発しましたが、実装という面でソフトウェアの品質をよりよくするための提案をしてくださる方々はコミュニティにいて、この点では彼らのほうが優秀ですね。

茂木 われわれの言葉で「メタ認知」(自分の考えや行動を客観的に認識すること)と呼ぶのですが、自分のつくったシステムを外から評価する能力が、まつもとさんは高いのかもしれませんね。

まつもと 確かに言語をデザインする能力は、プログラムを開発する能力とは違うと思います。

まつもとゆきひろ
茂木健一郎
まつもとゆきひろ
茂木健一郎

数学が嫌いな「言語デザイナーの脳」に興味あり

茂木健一郎
まつもとゆきひろ
茂木健一郎

茂木 では、まつもとさんのどんな能力が言語のデザインに役立ったのでしょう。そうですね……学校の教科では何が得意でしたか?

まつもと 得意な学科ですか……数学がダメで、物凄く悪かったです(笑)。中学も高校も成績が悪くて、高校3年生で「1」を取りました(笑)。微分・積分とかわからなくて、何ていうのか、興味が持てないんですよ。

茂木 興味が持てないことはやらない?

まつもと やれない、ですね。

茂木 そんなことにはリソースが割けない。成績が悪くても気にしない。

まつもと いえ、気にはしますよ(笑)。受験するつもりがあったので、さすがに「1」には衝撃を受けました。しかも、10段階評価の1でしたから(笑)。先生にはしょっちゅう怒られていましたし、これでも努力はしたのですが。

茂木 本当ですか?

まつもと もちろんです。でも、自分なりに勉強して、試験の前には数学がわからないという友達に教えても、試験の結果はそいつのほうが上なんですよ。もう、何がなんだかわからない(笑)。
多分、モチベーションが維持できないんです。計算なら電卓にさせればいい、解法だったら教科書を読めばいいと思ってしまう。

茂木 でも、大学は理系に進んだんですよね。失礼ですけど、どちらの大学ですか? そして、どうやって入ったんですか?(笑)

まつもと 大学は筑波大学です。私は共通一次世代なので、他の科目で点数をカバーしたのと、英語が2次試験にあったんですよ。私は英語と国語が得意科目だったんです。

茂木 やっぱり「言語」が得意なんだ(笑)。僕はそもそも理系と文系に分けることに疑問を持っているのですが、まつもとさんはどこかで、「プログラミングには数学とは別の能力が必要とされる」とおっしゃっていますよね。数学に対して劣等感はない?

まつもと いえ、いまだにありますよ(笑)。

茂木 ただ、脳では得意なことと不得意なことは表裏一体で、トレードオフの関係にあります。ですから、数学が得意だとプログラミングの能力が発達しない可能性もあるわけです。
プログラミングの能力とは違うのでしょうが、脳科学者としては「言語デザイナーの脳」に大変興味があります。こちらは数学が苦手、というより数学のテスト問題が嫌いと言うことに大きなヒントがあると思いますね。

Rubyが「ヒット曲」になったのはタイミングも一因

まつもとゆきひろ
茂木健一郎
まつもとゆきひろ

茂木 プログラミング言語は、年間でどのくらいリリースされるものですか?

まつもと 趣味レベルでつくれるので、具体的な数はちょっと……。

茂木 ただ、言ってみればRubyはヒット曲なわけですよね。年間で何千何万と楽曲は生まれるけど、ヒットする曲は限られている。

まつもと ヒット曲レベルだと、せいぜい世界で1年に1曲くらいでしょうね。

茂木 そんなにヒットするプログラミング言語を開発する能力はかなり特殊だと思います。ひょっとしたら百万人にひとりかもしれません。
進化生物学で「ホープフル・モンスター」と言うのですけど、多種多様な種が生まれて、それぞれが勝ち残ろうと、いつか主流になろうと努力しています。プログラミング言語における生き残りの差とは何でしょう。やっぱりクオリティ?

まつもと クオリティだとは思いますが、それは技術レベルという意味だけでなく、ユーザーを惹きつける魅力があるかどうかでしょうね。使ってもらってなんぼですから、プログラマの方々に、その言語を使う熱意を持ってもらえることが大切です。
熱意があれば、仕事だけでなく趣味のプログラミングにも使うでしょうし、もっと知りたいとコミュニティ活動へも広がっていきます。すると、皆で集まってイベントや勉強会を開くといった動きも出てきて、未知の人への啓蒙活動にもなります。このようにして徐々にユーザーが広がっていくわけです。

茂木 プログラミング言語にも流行があって、新しい言語がリリースされたら飛びつくアーリーアダプターがいると思うんですが、そうしたコミュニティが世界にはあるのですか?

まつもと プログラミング言語のアーリーアダプター・コミュニティはあまり聞かないですね。ただ、別の言語に移ろうかなと考えているプログラマがいて、そのときにうまく新しい言語が出てくれば移行するケースはありますね。
逆に言えば、新しい言語が出てくるのを待ち構えていて、リリースと同時にそこに移るといった、渡り鳥のような人は少ないと思います。

茂木 つまり、ヒットするにはタイミングも必要だと。

Perlの後継としてエンジニアに受け入れられたRuby

茂木健一郎
まつもとゆきひろ
茂木健一郎

まつもと かなり大きい要素だと思います。オピニオンリーダーのような人がいて、タイミングが合って「Rubyに移行したよ」などと言えば、その方の意見は説得力があるので周囲に波及するなどもあります。

茂木 Rubyのリリースが1995年だと思うのですが、会社でプログラマをしながら開発したのですよね? 完成までに何時間くらいかかったのですか?

まつもと 20年近く前の2月に作り始めたのですが、皆さんに使ってもらうまでに2年少しかかりました。1日1〜2時間ほどを続けて、合計で600〜700時間でしょうか。

茂木 1995年はタイミングとしてはよかった?

まつもと そう思います。ちょうどインターネットが出始めて、CGI(Common Gateway Interface)を作り始めるときにPerlがよく使われていたのですが、「もう少し別の言語がないかな」と探していた方がそれなりにいた時期だったんです。Perlの後継としてRubyを選ばれたプログラマは多かったと思います。
私もPerlよりもわかりやすい言語という考えで開発しましたし、Perlが好きだったので同じ宝石の名前にしようと「Ruby」と付けたんです(笑)。

茂木 なるほど(笑)。当初からドキュメントは英語でリリースしたのですか?

まつもと いえ、最初は日本語だけでした。ただ、あるオープンソースのプログラミング言語をダウンロードしたらドキュメントやコメントが知らない言語、確かロシア語で、全く読めませんでした。
面白そうなことやっているにその内容がわからない。そんな思いを他の人にさせたくないと思い、Rubyのリリース後、2年くらいかけて英語のドキュメントを書きました。ここからRubyが広がりました。

茂木 今、Rubyはどんな使われ方をしているのですか?

まつもと Webのサーバーサイドがいちばん多いと思います。例えば、クックパッドさん、食べログさん、TwitterのWebサービスの部分などにRubyが使われています。私はネットワーク応用通信研究所のフェローのほか、Rubyアソシエーションという団体の理事長も務めています。

茂木 フェローっていいですよね、自分の好き勝手な仕事ができそうで。特にエンジニアの場合はそんな気がします。

まつもと 確かに、当たっています(笑)。

お二人のプロフィール

茂木健一郎さん

1962年生まれ。脳科学者。ソニーコンピュータサイエンス研究所シニアリサーチャー、慶應義塾大学特別研究教授。東京大学理学部、法学部卒業後、東京大学大学院理学系研究科物理学専攻課程修了。理学博士。理化学研究所、ケンブリッジ大学を経て現職。専門は脳科学、認知科学。

※茂木健一郎さんの近著、『挑戦する脳』(集英社新書)が発売中。
http://www.7netshopping.jp/books/detail/-/accd/1106182153/subno/1

まつもとゆきひろさん

1965年生まれ。オープンソースソフトウェア「Ruby」の開発者。Rubyアソシエーション理事長。ネットワーク応用通信研究所、楽天技術研究所のフェロー。米Heroku社のチーフアーキテクト。松江市名誉市民。筑波大学第三学群情報学類卒業後、ソフトハウスなどを経て、ネットワーク応用通信研究所に入社。

※まつもとゆきひろさんの近著、『コードの未来』(日経BP社)が発売中。
http://www.7netshopping.jp/books/detail/-/accd/1106156657/subno/1

  • はてなブックマークに追加
  • Yahoo!ブックマークに登録
あなたを求める企業がある!
まずはリクナビNEXTの「スカウト」でチャンスを掴もう!
スカウトに登録する

このレポートを読んだあなたにオススメします

2013年は、mruby、MobiRubyで世界中にRubyブームを巻き起こす!

まつもとゆきひろ、増井雄一郎の“Ruby”ギークライフ

世界にRubyの存在感を示していきたい──組み込み向けプログラミング言語“mruby”“MobiRuby”を開発する…

まつもとゆきひろ、増井雄一郎の“Ruby”ギークライフ

組み込み向けプログラミング言語“mruby”“MobiRuby”が誕生!

まつもとゆきひろと増井雄一郎が創る“軽量Ruby”とは

「Ruby」の生みの親であるまつもとゆきひろ氏が、組み込み向けの軽量版「mruby」を開発した。また増井雄一郎氏は…

まつもとゆきひろと増井雄一郎が創る“軽量Ruby”とは

Rubyまつもと氏、Palmscape奥氏、うたうたう新井氏のホンネ 

生まれた時からプログラマ☆興味と感性で世界を驚かす

プログラマは下流工程、早く抜け出してSE、そしてPMへ上がりたい……なんて思っているソフトエンジニアの皆さん。その考えは間違って…

生まれた時からプログラマ☆興味と感性で世界を驚かす

C、Java、Lisp、Perl、Python、Ruby…

プログラミング言語の開発者たち、20人が語る名言集

「言語デザイナー」と呼ばれる、プログラミング言語の開発者たちの言葉を集めました。含蓄のある名言から、思わず納得のフレー…

プログラミング言語の開発者たち、20人が語る名言集

【後編】優秀なのに、なぜ日本企業でエンジニアの地位は低い?

まつもとゆきひろ×茂木健一郎「日本のエンジニア」

脳科学者の茂木健一郎氏と、Ruby開発者のまつもとゆきひろ氏の対談の後編です。前編は「言語デザイナーの脳」をお届け…

まつもとゆきひろ×茂木健一郎「日本のエンジニア」

僕たち私たちの転職忍者の術★31

バレないようにコッソリ転職活動したいでござる の巻

在籍中に転職活動をする場合、今の会社にバレないようこっそり慎重に進めたいもの。ときには家族や友人にも内緒で活動したいケ…

バレないようにコッソリ転職活動したいでござる の巻

この記事どうだった?

あなたのメッセージがTech総研に載るかも

あなたの評価は?をクリック!(必須)

あなたのご意見お待ちしております

こちらもお答えください!(必須)

歳(半角数字)
(全角6文字まで)
  • RSS配信
  • twitter Tech総研公式アカウント
  • スカウト登録でオファーを待とう!
スマートグリッド、EV/HV、半導体、太陽電池、環境・エネルギー…電気・電子技術者向け特設サイト

PAGE TOP