2007年12月3日月曜日

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

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

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

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

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

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

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

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

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

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

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

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

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

0 件のコメント:

コメントを投稿

アイアンマン2

 「アイアンマン」を観た あとに 「アイアンマン2」(2010年) を観た。「アイアンマン」がヒット作となり,続編が作られた。だいたい続編というのは面白さがいくぶん減るのだけれど,この続編は1作目に負けないくらい面白かった。 敵役を演じるのがなんといってもミッキー・ロークなのであ...