―― 自分のコーディングにクセやこだわりはありますか?
符号が必要でないときにはintではなくunsigned intと手が動いてしまいますね。0以下になっていないかチェックをしなくていいのがメリットといえばメリットですけど、たぶんタイピングに手間が掛かるデメリットの方が大きいと思います。
―― 理解するのに苦労したコンピュータ関連のトピックは?
HaskellのMonad。5種類ぐらいの解説を読んでやっと理解できたときは、その美しさに感動しました。数学などでは「何でこんなの学ばないといけないんだろう」と思うこともありますが、コンピュータサイエンスについてはその広大さを楽しみたいですし、コンピュータサイエンティストとしてやっていくのであれば、学ぶべきであると考えているので、何でも知りたがりますね。
―― プログラマーの能力は生まれ持ったセンスによる部分が大きいと思いますか?
センスよりも書いてきたコードの量だと思います。もちろんセンスで決まる部分も多いとは思いますが、それは(Rubyの)まつもとさんのような超ハッカーレベルになってようやくいえるのであって、それほどコードを書いていない状態で、「わたしにはセンスがないから」といっているのを耳にすると、どうなんだろうと思いますね。
―― 今興味がある知識や技術はありますか?
ハードウェア関連の知識が欲しいですね。せめてFPGAぐらいは操れるようになりたいです。
―― 国または民間企業が実施している情報処理の資格を持っていますか?
持っていません。海外生活などの関係で単にタイミング的に逃した、というのが大きな理由です。車の免許もいつ取ればいいのやらと頭を悩ませているくらいです。
―― PCは自作派ですか? 今お使いのPCのCPUは何?
現在メインで使っているのはMac Proです。未踏で自分へのお祝いに買ったものです。Dual Xeon 2.66Ghz×2、メモリ5Gバイトで使っています。
自作PCはサブで使っています。あまり自作にこだわりはないのですが、一度作ってしまうと、フルセットで買い替えるのはもったいないので次も自作になるという悪循環が発生しています。CPUはIntel/AMD/PowerPCといろいろです。AMD64環境は特有のバグが出ることが多く、そういったダメなところがかわいいやつだなと思ってます。
―― キーボードなど入力デバイスのこだわりはありますか?
一時期メカニカルキーボードにはまっていましたが、やはり打鍵音がうるさいので、今は普通のメンブレンキーボードのHHK Lite2を使っています。HHK Pro欲しいけどなかなか手がでないですね。いつかは買いたいです。
―― FPGAでロジック周りも含めたプログラミングができればなぁと思うことは?
多々あります。GPGPU(General Purpose GPU:GPUをグラフィックス処理以外の汎用目的に活用するもの)に比べても優れたパフォーマンスが出るともっとうれしいんだけど。
―― 自身の研究で、ハードウェア的な知識はどの程度必要ですか?
Webプログラミングなどのように高レベルなプログラミングに比べると、基本的なコンピュータのハードウェアの知識は必要なのではないでしょうか。
わたしも最近になって、コンピュータの基礎論、数学知識は非常に重要だと痛感しています。これらの知識が抜けていると、天井が見えてしまうというか。最新のトピックを追うのも重要ですが、それに気を取られてデータ構造とかアルゴリズムとかをおろそかにしてしまうと、やはりどこかで痛い目に遭うのだと思います。
あと、バイナリアン的なことをいうなら、機械語関連の知識にも目を向ける意義はあります。例えばメモリのキャッシュミスでどれくらいのパフォーマンスロスがあるのかなど考えたり。重要なのは、それらを放置しない方がいいのではないかということです。最近のPHP周りの議論をみていても感じるのですが、動けばよい、というのも確かにそうなのですが、ちゃんと勉強するのも大事なことだと思います。
―― Windowsしか知らないプログラマーはどうですか?
一般的にプログラミングの中でOS依存の知識が占める割合はそんなに大きいものではないと思うので、別に構わないのではないでしょうか。LinuxやMac OSXなど、UNIXベースのプログラミングはWindowsより素直なので、学ぼうと思ったらすぐに学べるものだと思います。
―― MicrosoftのXAMLやWPFはどう思いますか?
いまだにWin32 APIをたたいている人なので何とも言えないです。でも、そんなこともいっていられないので勉強したいとは思います。
―― インタプリタ言語でプログラミングのニーズはどの程度満たせると思いますか?
インタプリタ言語では分かりませんが、Java、CLRなどVM上で動くプログラムでニーズの9割以上は満たせると思います。VM上で動くレンダラも、かなり現実的な速度で動くようになってきているみたいですし。低レベル言語はHPC分野や、組み込み系、OSなどの部分でしか残らないのではないでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.