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

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

よいプログラマーは2つに分けられる

Q33 プログラマーの能力は生まれ持ったセンスによる部分が大きいと思いますか?

思いません。そもそも言語能力は習得するものであり、生まれた時に備わっているものではありませんし。訓練によって素早く動けるようになったり、身体の感覚を使って省力化はできるようになるとは思いますが。

 仮にセンスの部分があるとすれば、プログラミング言語の多くはASCIIのコードセットで書かれているので、それらの文字を速く読める必要はあると思います。

Q34 プログラマーに向いている素質は何だと思いますか?

問題を発見できる能力は必要ですね。ある課題があったときに、その課題をこなすために解かなければならない問題とは何か、を見つけられる人にとっては、楽しい仕事だと思います。

 もう1つあるとすれば、自分のやったことをあらゆる可能性から検証して、例外がないかどうかを限界まで確かめる能力。よいプログラマーは、regression test(過去のバージョンの動作結果と比較したり、入出力関係が判明している実行例を使って、プログラムの動作が正しいかどうかを確認すること)の達人か、regression testを必要としない論理的完全性を持ったコードを書きます。

 他人と仕事をする上では、他人のコードを読みこなす能力も必要だと思う。それもできるだけ早く、速読というか、全部なめるように読むだけではなくて、必要な部分を狙って読む力も必要でしょう。

Q35 Windowsしか知らないプログラマーはどうですか?

不幸だと思います(笑)。率直な話、わたしはWindows 95以降のWindowsマシンのためのフリーソフトウェアを書いたことがありません。書く気にならないから。言い換えれば、Windows上でフリーソフトウェアを書いている人たちの苦労は、大変なものだと思います。

 でも、わたしのやっているような仕事なら、WindowsでなくともFreeBSD上で大半ができてしまう。あえてWindowsの上で、道具を作りたいとは思わないんです。FreeBSDなら、Cコンパイラもあるし、Perlなどの道具もそろっているし、組版だってできる。

 Windowsを使う唯一最大の理由は、事務系の人たちが、Microsoft Office Suiteしか使わないからです。彼らを困らせることはしたくないですからね。Windowsは、そういう意味では情報のrenderingを行うもの、つまり表現を補強するための道具と割り切っています

Q36 GNUについてはどう思いますか?

いろいろな意味でよいものをたくさんもたらしたプロジェクトだと思いますが、多少窮屈だなと思う部分があることは否めません。

Q37 GNU GPLについてはどう思いますか?

GPLもいろいろあって、一概に語れなくなってしまいました。結局、どこまでが反社会的な動きか、あるいは社会的に許される利益追求の動きか、というところで見ていくと、GPLがすべてだとはとてもわたしには言えない。リチャード・ストールマンはかつてパスワードを使ったアカウント認証にも反対したような人だそうで(スティーブン・レビィ『Hackers』のEpilogue:The Last of the True Hackersを参照)、そういう人であるという背景を理解した上で考えるべきライセンスのありかただと思います。個人的には小飼さん同様、BSDライセンスが好きかなあ。

Q38 インタプリタ言語でプログラミングのニーズはどの程度満たせると思いますか?

最近のPerlは速いですね。ネットワークシミュレータでも、tcl/tkで書かれたものが実用になっています。ですから、能率のよいコードを書くためにコンパイラで苦しむよりは、インタプリタ言語でコードを書いて製品化する、というのは十分アリです。本当にクロック単位の高速化を求める世界は、その部分だけアセンブリ言語で、それでもだめならFPGAなどでハード化すれば済むこと。

Q39 プログラマーとSEの違いを説明してください。

コード書いたことのない人は本来コンピュータ関連の職業につかない方がいいんじゃないかと思います。SEとは何なのか、というのは、かつてSEのたくさんいた会社に所属していたんですが、その経験をもってしても、自分にはよく分かりません。営業は営業で、コスト試算とか利益率の見積りとか、プログラマーとは別に専門職たり得るスキルがあるはずで、それがごっちゃになってる日本の状況はよく分かりません。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ