2007年12月3日月曜日

効率の良い計算機のプログラミングとは

先日は,プログラミングの大前提は
計算速度の向上とメモリの節約であるとの話を書いた.

しかし,現在のプログラミングはそれだけではいけない.
それよりも大事なもの.
それがメンテナンス性である.

すなわち,誰が見ても,そのプログラム構造が容易に理解でき,
変更が容易に行えるようにプログラミングは
されていなければならない.

あるクライアントに,ソフトウェアを納めることとする.
数年後,プログラムに変更の必要があったとき,
再び自分がその仕事を行うとは限らない.

自分の部下や後輩,
あるいは全く別の会社のプログラマーが
行うことになるかもしれない.
そのときにプログラムが理解できない,では
まずいのである.
あるいはバグが生じやすい複雑な構造は,
望ましくないのである.

そこで,見た目にも機能的にも美しいプログラムを
書く必要が出てくる.
すなわち,メンテナンス性の良さが一番
プログラミングに要求されるスキルとなってくる.

そこで,何十枚,何百枚にもおよぶ状態遷移フロー図や,
プログラム本文の何十倍の量にもなるコメント文が,
必要となってくるのだ.

だから昔とは当然プログラミングの手法は変わってきている.
例えば,メモリの割り当ても,現在のように十分に大きなメモリが
使用できるのであれば,複雑なアロケーションはせずに,
単純に割り当てる方が,ずっとシンプルなプログラムになる.

確かに,個人においてもこれらのスキルは不可欠である.
私が3か月前に作成したプログラムがあっても,
コメントなしにはとても理解することができない.
自分が書いたものでさえ,この状態なのである.
まして他人が書くプログラムにいたっては...

(最近私は,一週間後の私は別人だと思っている.
その別人である私に向けてメモを残すようにしている)

効率の良いプログラミングは,
メモリの節約や計算速度の向上から,
メンテナンスの容易さにずいぶんとシフトしてきている.
すなわち総合的な作業量が最小化されるように,
効率化されていく.

今後は,スーパーコンピュータなどの特殊な用途だけに
メモリと速度向上のスキルは特化していくのだろう.

0 件のコメント:

コメントを投稿

桜を見ると思い出す

桜が満開である。 研究室でも花見BBQが行われ、まさに「花より団子」 、学生はだれも桜など見ずにひたすら食べることに集中していたけれど、食べづかれた私は桜をぼんやりと見ていた。 学生の一人が 「桜の樹の下には屍体が埋まっている!」と梶井基次郎の文章 について話していたので、そうい...