力武健次――在野の孔明、問題解決の彼岸にみたプログラムの本質New Generation Chronicle(5/8 ページ)

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

人生とは問題解決の繰り返し

Q41 「自分はもしかしたらすごいプログラマーかも」と思ってしまうときはありますか?

「俺ってすげーじゃん」ってのは、どんな問題を解いたとき、解けたことが証明できたときでも思いますよ。それが楽しさの源泉でもあるから。でも、多くの問題は実は昔の問題のリメイク版じゃないけど形を変えて現れてきたものでしかない、というのもまた事実です。ですから、慢心すべからず、ですね。

Q42 プログラムをするようになって、「自分のここが変わった」というものは?

人生とはproblem solving(問題解決)の繰り返しだ、と思っています。だからいつもプログラミングしているようなものかも。コンピュータに触れられるようになってからは、頭の中に状態遷移とか、AND/OR/NOTの関係とかがすぐに浮かぶようになったかな。

Q43 正直、コードを書かない人に何か言われたくないと思っている?

コードって、道具であると同時に、芸術作品でもあるんですよ。だから、自分の作品を他人にただdisられたくはないですよね。コードは動いてナンボだから、建設的批判、つまり解決策の書いてあるバグリポートなどはリスペクトして読んで反映しますけど、そうじゃなくて、ただ「動かない」というのは、作者としては対処しがたいなあ、と思っています。同様に、「汚い」というのは、あまり他社様に言わない方がいいでしょうね。自分にとって読みにくい、というのは言ってもいいと思うけど。

 後、コードに落とせる数式やアルゴリズムを示せる人は、プログラミングをしなくても、コードを書いている以上のことをしているのと同じだと思っています。

Q44 なんちゃってプログラマーってどんな人を指しますか?

システム管理者の経験は長いけど、その立場から抜けられない人たちに意外に多いんじゃないかと思ってます。システム管理者って日本では非常に低く見られがちな職業なんだけど、その理由の1つは、仕事の(他人に分かる)言語化が下手な人が多い、という問題に尽きるのかもしれない。

 プログラミングに関していえば、疑似乱数の作り方で、Mersenne TwisterのようなLFSRを使ったものが、なぜ線形合同法など古典的な手法よりも優れているかという違いが分かるぐらいでないと、セキュリティを重視するこれからのプログラミングの世界では生き残れないと思います

 後、プログラマーであるならば、計算量については敏感でなければなりません。CPUは自分だけのものではないのですから。

Q45 セキュリティ面で心懸けていることは何ですか?

時間の制約を満たすもの、それから人間が納得して実行できなければ、どんなセキュリティ対策も机上の空論でしかあり得ません。

Q46 AIをプログラミングするとすればどういったものを?

 人工知能(AI)って、あまり信じていないんです。最近GoogleはAI的だ、という論説がありますが、あれは人間がGoogleの検索結果を見て反応し、その結果をGoogleの検索システムが記憶して再判定するというプロセスの繰り返しがAI的に見えるだけで、Googleという検索システムが何か自分の考えを持っているわけではないですよね。行動は状況とは不可分ですから、そもそもすべての場合分けを事前に察知してコーディングできるわけでもありません。

Q47 コーディングスタイルで許せないことは?

小飼さんと同じになりますが、コードでやっていることに対し、コメントで嘘をついてはいけないですね :-)。後、A and Bという条件が(not A) or (not B)と書くべきものであるならば、そう書いてほしい。if-then-elseのネストが深すぎるのも、少し考え直せば簡素化できるはずです。同様に、あまり形式的な束縛関係を重視し過ぎるのは、実際のコードを読みにくくする可能性があるので、やり過ぎは禁物ですね。

Q48 美しいと思うコードはどんなものですか(例があればなお可)?

 データの符号化に関するコードは、どれも工夫が凝らされていて、勉強に値します。個人的に好きだったのは、以前特許の関係で使えなくなって以来あまり有名ではなくなってしまいましたが、Lempel-Ziv-Welch法によるテキストデータ圧縮のコードです。そのほか、splay-prefix coding、arithmetic coding、Huffman codingなど、美しいアルゴリズムはテキストデータ圧縮の世界には多く存在します

Q49 思わず「これはひどい」と口にしてしまったコードがあれば教えてください。

最近は他人様にこういうことを言える身分ではなくなりました :-) というか、きれいなコードでないと、セキュリティホールになってしまうので、減ってきているように思います。

Q50 教えて君には「ググレカス」といいたくなる方ですか

以前「他人依存症」という言葉を妻といってたんですが、人間に聞くよりはまず検索しろ、(検索結果が正しいかどうかは)別の情報源から自分で調べろ、と他人には言っています。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ