上野康平――3次元空間を統べる若き天才プログラマー(完全版)New Generation Chronicle(2/9 ページ)

» 2008年02月19日 01時00分 公開
[西尾泰三,ITmedia]

飛び級は珍しいものではない、知られていないだけ

―― 今の自分が形成される上で最も影響があったと思う出来事は?

中学2年のときに参加したScience Fair(自由研究大会)ですかね。そこで簡単なレンダラを発表して、今に至るという感じですので。小学校3年生のとき、父の仕事の関係で米国に引っ越したのですが、そこでのIQテストの結果、数学と科学で1学年ずつ飛び級をすることになりました。飛び級のクラスでは自由に学べる時間が多く取られているので、そうしたことが後に大きく影響したのだと思います。

 ただ、飛び級というのが何だか一人歩きしているような気もしますが、実際のところ、日本の教育を普通にやっていれば、飛び級は別に珍しいことではありません。あまり知られていないようで、日本人は申請する人が少ないようですが、実は強気に出ればみんな飛び級になったりすると思いますよ。

 高校のときに日本に戻ったのですが、いつかまた米国に戻りたいと考えていたので、日本でも飛び級を受けてみました。6時間ほど物理と数学の試験を受けたのですが、決まった答えがない、いわゆる思考問題だと感じました。前提知識の量だけではなく、その場で自分で勉強するバイタリティであったり(参考書籍は用意されている)、既出パターンではない問題への応用力、6時間ギブアップしない忍耐力などが問われる試験でしたね。

 ちなみに、わたしと同じ期ではわたしを含め4人が飛び級制度で物理学コースに入学していますが、わたしと同じ学校(東京学芸大学付属高校)で同じ部活(数理科学研究部)の方も入学されるというレアな年だったようです。

バトンを誰に回すかという話になり、ノートPCを取り出して外部とTwitterで連絡を試みる上野さん

―― 上野さんにとって大学に在籍している意義は?

独学とは違い、本質を体系的に教えてくれるのはありがたいですね。でも、最終的にはどんな分野も独学だと思います。

―― はじめてPCに触れたのはいつごろですか?

小学1年のときにはMS-DOSのコマンドをたたいていた覚えがあります。マシンはPC9801/NC40でした。後、TK-80にもはまりましたね。

―― 最初に触れた言語は?

最初に触れたのはPC9801上で動くROM-BASIC(N88BASICのサブセット)でした。PLAY文がなかったのがきつかったなぁ……。一番最初に作成したプログラムは、おなじみの

10 PRINT "HELLO"

20 GOTO 10


かな。

―― 最近メインで使っている言語は? なぜその言語に引かれたのですか?

現在レンダラを書くのにメインで使っているのはC++。やはり実行速度はレンダラにとって最優先課題なので、できるだけ低レベルな言語で書くことが求められます。その点、オブジェクト指向の再利用性、可読性、DRY(Dont Repeat Yourself)性を確保しつつ、ネイティブコードにコンパイルできるC++はレンダラなど実行速度が重要なアプリケーションの開発には最も向いていると思われます。

 ただ、最近はC++で書いてしまって少し後悔しているところもあります。あまりにもC++の言語仕様が複雑すぎるからです。5年間ほどこの言語を使ってプログラミングをしていますが、いまだにマスターできる気がしません。

 歴史が長いことからC言語との互換性/親和性などから過去の遺産を多く引きずっているところも多く、とても合理的とは思えない仕様にもしばしば出くわします。自由度が「高すぎる」テンプレートメタプログラミングは書いていて非常に楽しいのですが、バッドノウハウの固まりでもあり、気をつけないとすぐに暗号めいた記述になってしまいます。

―― 今一番興味のある言語は何ですか?

Lispなど関数型言語ですね。Haskellを少しかじりましたが、やっぱりばりばりS式なLispとかSchemeとかも触っておかないとなという感じです。個人的にはクセの強い言語が好きで、究めたいなと思っているのはC++とRubyですが、言語が持つ思想を学ぶという意味で、たくさんの言語に触れるのは重要だと考えています。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ