2009.07.11 Saturday
プログラム その2
プログラムについて、昨日書いたが、その続き。
一生一度のプログラムの後の話。
会社で小さなプログラムはちょこちょこ作っていた。
プログラム電卓、というやつだ。これはBASICという言語で書いた。
これはパソコンがこんなに普及する前に、プログラムを学習するためにぴったりだった。
BASICという言語は、取っつきやすいもので、比較的簡単だった。(もちろん、簡単なプログラムしか作っていない)
統計計算とか、制動距離の計算とか、短い計算のためのものが主だ。
そのうち、エクセルが出てきて、関数を使ってやるようになったので、プログラム電卓は引き出しの中で電池切れの状態となった。
これでぼくのプログラミングの人生は終わる。
それ以降は作っていない。
エクセルのマクロという機能はちょっと使ったが、あれは動作を覚えさせる程度の使い方で、ぼくの場合はプログラミングとは言えない。
機会があれば、作ってみても面白いとは思う。
あの、自分がプログラムしたものが、予想通りに動いて、プロッタ(グラフを描く機械)が動くのは感動的だった。
プログラムには2つの法則がある。
一つはSさんが言っていたもので、もう一つはぼくが思っていることだ。
一つ目の法則は、「美しいプログラムは、機能的に優れている」というもの。
同じことをするのにも、人によってコーディング(プログラムを書くこと)の癖がある。
コメント行といって、ここは何をする部分だ、という説明を書いたり、変数を意味あるもの(例えば、重さの変数ならWeightというように)にすると、後でプログラムを見直す時にわかりやすい。(この作業をデバッグという)
他人の書いたプログラムほどわからないものはない。
それでも、美しいもの(コメント行や変数の使い方がちゃんとしているもの)はそれなりに解読できる。
ところが、コメント行がなく、変数も行き当たりばったりでつけているようなプログラムはわかりにくい。
そういうのを、「美しくないプログラム」というふうにSさんは言っていた。
たとえ、動作をしても、美しくないプログラムはダメだという。
これは、他人のプログラムを見たことがある人なら、うなづけると思う。
もう一つは、プログラムは90%完成するのにかかる時間と、残りの10%にかかる時間はほぼ同じ、というもの。
これは、ぼくだけが当てはまるのかもしれないが…。
最初は動かすまでが大変だ。
文法エラーがあったり、変数の型(整数型とか、実数型とか…)が合っていないというエラーが出る。
それらを一つずつ潰していって、それで動くかというとそうではない。
根本的なエラーが一つ二つある。
それを見つけて直す。
それで、ようやく動くのだが、思い通りには動かない。
いろいろデバッグする。
このあたりで、プログラムは9割方完成している。
やっと動いたけど…、というところ。
そこからが長い。
なぜ長いかというと、曲がりなりにも動くようになると、欲が出てここはこうしよう、あそこはこう変えよう…、という事になってくる。
自分が生み出した子供のような気がするのだ。
それで、完成までの時間とそれまでの時間が一緒くらい、ということになる。
どうでもいいところが、どうでもよくなくなる。
こだわり、というやつだ。
それが、完成までの時間を長くするのだが、それはやっていて楽しい時間でもある。
だからこそ、そこに時間をかけてしまう。
これが、全体のプログラムをせずに、分担でパートだけを作るのなら、話は違ってくるだろう。
でも、そういう経験は、一つのプログラムを作った人なら、あるような気がするのだが…。
まあ、後の方はさておいても、「美しいプログラムは機能的だ」、というのは今でも真実だと思う。
プログラムなどしなくなった今でも覚えているのは、やっぱり正しいからだろう。
|