昨日作ったプログラムだが、剰余演算子をわざと使わずに書いたことを批判している方もいらっしゃるようで。あれはあくまでこういう書き方もあるよ、ということを言っただけで、使わない条件を追加したつもりはないし、むしろ剰余演算子に限らず使えるものはどんどん利用していったほうがいいのは当然。それとも他に使わない条件を追加した人がいる?


 ヘコむなあ。


以下チラシの裏につき見ない方がいいと思われ

 そもそも高級言語を使わずにアセンブラで書くのだって剰余演算子問題とまったく変わらないし。

 「処理をイメージして構築する能力」を問うのに、アセンブラソースまでイメージして最適化を図る能力を除外するのはありえない。そこまでくると能力というよりセンスかもしれないけど。


 趣味で普通にパソコン上でプログラミングしている分には、何も考えずに結果だけ正しく返すことに心がけていればコンパイラなり何なりがある程度の最適化はやってくれるし、冗長であっても問題になることはほとんどないが、研究や業務ともなってくると話は別になる。たとえばSGIAltixで速度構造を出すときに、せっかく16CPUのジョブクラスを借りても並列計算を考えてプログラムを組まなかったために2CPUでしか動いていなくて予想の倍以上の時間がかかった上にCPU時間を無駄にしたとか(うっ、胃が痛い・・・)、オンメモリーじゃなくて随時読み書きしてるとか(ぐはっ・・・)、そもそもIntel Compiler使ってるのにOpenMP指示行抜けてるとか(それは単なるボケ)。

 「保守性をよくしたので効率が落ちました、でも今のコンピュータは十分速いから問題ないですよ」などとほざいたら、翌日には職場から席が無くなる。
 保守性などというものはもっと大きな全体構造やドキュメントその他で担保されるのが筋。ウチの裏山にある某研究所の開発部隊残酷物語は有名だが、大域変数使いまくりは当たり前、ある関数が別の関数のローカル変数を直接参照とか、サブルーチンからメインルーチンにジャンプしてまた戻ってくるとかひどい有様。それでも仕様書というドキュメントがあるからこそなんとかなっている。(グループによって版数が違うとかいうのはあるが)


 元の話というのはプログラマーの採用試験で課題に対してそれにどのようなコーティングを行うかという能力を見極めたいのにそもそもプログラムが組めない人が多すぎるということを述べているわけであって、剰余演算子を「使った・使わない」についてどうこう言うことのは変な話である。むしろ、そのコーティングによってプログラマーの適性を見極めることができる。


 それにしても「今はコンピューターの性能が高いから実行効率を気にしなくてよい」などという発言が出てくるとは、きっと恵まれている世代なんだろう。まあ、VBで新規プロジェクトを作って何も書かずにF5を押すだけでスケルトンのオブジェクトが出来上がるくらいだから、当たり前とえば当たり前ではあるが。


 そういえば最近は工学部でロジック回路の実習はやらないところも少なくない。パソコンのパーツとしてのCPUやメモリーは知っていても、その構造や動作原理まで掘り下げて知っておく必要はないということらしい。