第3回 Cyanを設計した高校生、5カ月で5つの言語を習得
インタビュアー:竹内郁雄(東京大学 教授)
執筆:荒井亜子(@IT自分戦略研究所)
2009/1/15
本連載では、コンピュータの世界で卓越した才能を発揮しているプログラマたちに、スキルやキャリアに関する10の質問し、プログラマとしての考え方・生き方を探る。天才の言動からわれわれ一般人がまねできることとは何か。今回は新春特別企画として、10の質問枠を取り払い、竹内郁雄氏との対談形式でお伝えする。 |
読者の皆さんは、「Cyan」(サイアン)という言語をご存じないかもしれない。Cyanは、Lispのマクロを持ち、Python風のインデントによってブロックを表すプログラミング言語。2008年の春、林拓人という1人の高校生によって設計された。
林拓人氏 | 写真:岩井玲文 |
開成高校2年。撮影は開成高校にて |
連載第1回の竹内郁雄氏が「開発」の天才、第2回の五十嵐悠紀氏が「発想」の天才とするならば、今回の林氏は「プログラミング言語」の天才だ。
林氏がプログラミング言語に初めて触れたのは中学3年の夏休み。そこから冬休みまでの5カ月間に、5つのプログラミング言語を習得した。その後もいくつかのプログラミング言語を学ぶ中、林氏の興味はWebサービスなどのものづくりには行かず、ひたすら言語自体へと向かっていった。
高校2年の春、自身でプログラミング言語Cyanを作り上げた。Cyanを設計した林氏は、「U-20プログラミング・コンテスト」(以下、U-20プロコン)で経済産業大臣賞を受賞。初めて本格的に書いたプログラムは、自分の設計した言語の処理系という、何とも特異な、前代未聞のプログラマである。
インタビュアーは、Lispでおなじみの東京大学 教授 竹内郁雄氏。才能あるプログラマの発掘・育成のためならばと、ボランタリーで引き受けてくださった。
■プログラミング能力と日本語力は比例する
1.――文系ですか? 理系ですか?
竹内氏:林君はいま高校2年生か。学校の勉強で得意科目は理数系?
林氏:理数系科目は好きですけど、得意とまではいえないです。国語は比較的得意です。
竹内氏:素晴らしい! 私の持論ですが、国語ができる(=日本語できちんとした文章が書ける)人じゃないとプログラムは書けない。これは非常に重要です。情報処理推進機構(IPA)未踏IT人材発掘・育成事業(未踏プロジェクト)で、逸材中の逸材といわれた登大遊(のぼり だいゆう)君も、国語力がすごい。プログラミング能力と国語力が同じくらいじゃないかな。本当にすごいプログラマは国語ができる人が多いです。いま日本は文章を書くという教育をほとんどしていないですが、林君は自分で文章を書く勉強をしたことはありますか?
林氏:本は好きで小さいころからよく読んでいました。特別にものを書く勉強をしたことはないですが、作文を書くときにはそれなりの注意を払って書きます。あと、日本語の文法にも興味があります。
竹内氏:そのセンスが重要なんです。話を聞いて分かったけど、林君は文系っぽいんだよね。その文系っぽい人が計算機に目覚めたときは怖いんですよ。恐ろしい力を発揮しますから。
■「本当に暇だったんです」(林氏)。1冊の部誌が人生を変える
2.――これまでのプログラミング経験を教えてください
竹内氏:プログラミングを始めたきっかけは?
林氏:中学3年の夏、帰宅部(註)で暇をもてあましていたとき、ふと本棚から中学2年の文化祭でもらったコンピュータ部の部誌を引っ張り出して読んだことです。部誌に書かれていた日本語プログラミング言語TTSneoを見て、これだったら自分でもできそうだと思い、やってみました。
竹内氏:なかなかマイナーな言語ですね。日本語だったら自分でもできそうと思ったんですね。TTSneoの後はどんな言語を勉強しました?
林氏:TTSneoの後はゲームを作るHSPを勉強しました。その後C言語をやろうとして、C++でオブジェクト指向をかじったりしました。そのときはフレンド関数などの使い道がよく分からず、オブジェクトは構造体に毛が生えたもの程度にしか思っていませんでした。そして、中学3年の冬にプログラミング言語の処理系の作り方を知りました。
竹内氏:中学3年の夏から勉強し始めて中学3年の冬には処理系の作り方を? 早いね! 教科書を読んで勉強したんですか?
林氏:処理系の作り方は、『いまどきのプログラミング言語の作り方』という本で勉強しました。この本にプロトタイプベースのオブジェクト指向について書かれていて……。
竹内氏:いきなりそこに行くか?! この本をきっかけにいろいろなプログラミング言語を習得したんですか?
林氏:はい。当時、オブジェクト指向はクラスベースという固定観念があったのですが、プロトタイプベースを知ったときにオブジェクト指向は広い意味でもっと面白いものだと思いました。プロトタイプベースのオブジェクト指向に興味を持って、いろいろな言語を眺めるようになりました。ちなみにそのときはまだLispを面白いとは思えなかったんです。Lispの第一印象は「変な言語」。後にプログラミング言語を作ろうとしてもう1度学び直したとき初めてLispの面白さが分かりました。
竹内氏:一般に、オブジェクト指向は入門教育が大変なんです。初心者にとって最初に越えなければならない壁が多いから。まずクラスやインスタンスありきで、最初にやたらと抽象的な概念が出てきます。入門言語としてオブジェクト指向がやりにくいというのは教育界でも定評があります。その点林君の場合はプロトタイプベースから入ってとっつきやすかったんですね。そういうところに自然に入っていくのがすごい。ただ、プロトタイプベースは、職業プログラマに対しては必ずしもお薦めしませんが。
それにしても、本当にプログラミング言語遍歴が速いよね。中学3年の夏休み(8月)からTTSneo、HSP、C言語を勉強したんですよね。
林氏:はい、ですがCは文法だけ眺めて止めにしました。これでプログラムは作れないかな、と思ったんです。低水準過ぎる気がして……
竹内氏:あー、いいね〜その感覚。それで、中学3年の冬休み(1月)にC++に移って、その後プロトタイプベースのオブジェクト指向とJavaを学ぶと。
林氏:自分でもこんなに早かったっけ、と思います。
竹内氏:TTSneo、HSP、C、C++、Java。つまり8月から1月の5カ月で、5個のプログラミング言語を習得したんだ?! 特別なセンスですね。ほかにどんな言語を勉強したんですか?
(註)帰宅部:部活動に入らないこと |
Cyanができるまで |
【写真】天才プログラマに聞く10の質問 バックナンバー
- 第1回 Lispの仏さま竹内郁雄の目力
- 第2回 麗しの天才科学者、五十嵐悠紀の「科学って素敵!」
- 第3回 Cyanを設計した高校生、5カ月で5つの言語を習得
5分で分かる「10年後も生かせるスキル」習得法 【スキル編:連載最終回】―― スキル習得のコアとなる3つのポイントを再確認しよう! |
2009年技術トレンド&求められるスキル ―― 不況に強い=オフショアされない エンジニアを目指せ! 〜第14回:エンジニア・キャリア進化論〜マイナビ転職 |
29歳、メーカー勤務。もうひとつの顔は大学院1年生…… デザインも工学も学びたい! 『東京夢工房』でモックアップからはじまる“ものづくりアーキテクト”への夢 |
今年の新人は「どう育てたい?」、新人育成の「『ツボ』ってなんだ?」 これから準備しても、まだ間に合う! プロが指南する“実践的2009年度新人研修” |
キャビンアテンダント出身、現在ビジネス研修企業の社長、私生活では一児の母。 完ぺきと思える経歴の彼女が、さらに社会人大学院へと通うワケは…… |
「一見、関係なさそうな授業が仕事に役立っています」 ―― 仕事と両立しながら キャンパスライフを送る、現役学生3人が“社会人大学の魅力”を徹底討論してみた! |
|
|
1日1問、模擬試験問題をメールで届けます | |
ITスキル研修4000件、最新情報の検索できます |
ゼネラルスポンサー
自分戦略研究室スポンサー
◆ ―― いよいよ、スキル編、連載最終回。 5分で分かる、10年後も生かせるスキル習得法 ◆ 2009年の技術トレンド&求められるスキル 〜エンジニア・キャリア進化論(第14回)〜
|
お勧め求人情報
◆ “iPhone”“路線バス”“N700系新幹線” 身近なものはデザイン次第でこんなにかわる |
||
◆ これから準備しても、まだ間に合う! プロが指南する“実践的2009年度新人研修” |
||
◆ 仕事をしながらでも、1年間なら頑張れる! 元CA〜現企業社長の在校生インタビュー |
||
◆ “社会人大学院って、実際どうなの?” 現役学生が本音で語る「社会人大学の魅力」 |
||
|
**先週の人気講座ランキング**
〜データベース編〜
|
|