自分戦略研究所 | 自分戦略研究室 | キャリア実現研究室 | スキル創造研究室 | 生活向上研究室 | 組み込みキャリア研究室 | コミュニティ活動支援室 | エンジニアライフ | IT業界就職ラボ |
スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷


第3回 Cyanを設計した高校生、5カ月で5つの言語を習得

インタビュアー:竹内郁雄(東京大学 教授)
執筆:荒井亜子(@IT自分戦略研究所)
2009/1/15

第2回1 2 3次のページ

本連載では、コンピュータの世界で卓越した才能を発揮しているプログラマたちに、スキルやキャリアに関する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ができるまで

第2回1 2 3次のページ


@IT Special 注目企業
iPhoneアプリは外注? いやオレらが作る! 社内エンジニアに“檄文” 開発秘話公開
公開後は酷評も、会社は理解。正式プロジェクト発足でバージョンアップへ
【転職体験談】「もっと多くのユーザーに使って欲しい」⇒ mixiへの転職に成功!
8年間のSIer生活で得た経験とスキルを生かして転職活動。評価のポイントはどこ?
@IT Special ラーニング
【経営戦略】⇒「いつか勉強しよう」ではなく「いまこそ勉強すべき」スキル
50%のユーザー企業が「戦略を立案できるIT技術者」と仕事をしたがっている
気になる「社会人大学院」という選択肢
仕事との両立は本当に可能? 独学とは何が違う? 実際の学生・卒業生6人に聞いた
関連キーワード

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード


スキルアップに役立つサービス
ITトレメ 1日1問、模擬試験問題をメールで届けます
ラーニングカレンダー ITスキル研修4000件、最新情報の検索できます

キャリアアップに役立つサービス

スキルアップ/キャリアアップ(JOB@IT)

スポンサーからのお知らせ

- PR -

お勧め求人情報


@IT Special ラーニング
◆クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

New!
◆気になる社会人大学院。興味はあるけど仕
事と両立可能?実際に通った6人に聞いた

→ インデックス


ITトレメ・今日の問題

基本情報技術者試験

ウォーターフォールモデルの特徴のうち、システム開発の一貫性を保証するものはどれか。<15年春問46>

»出題ページへ