誰のためのコード? | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

プログラマたるもの、毎日、黙々とソースコードを書いていることだろう。しかし、いったい何のために書いているのかということを考えたことがあるだろうか? 「カネのため」とかいうのは無しだ。

「プログラムを作るため」というのが一般的な答えだとは思う。しかし、プログラムは単なる0と1の連続である。ソースコードを書かなければ作れないというものでもない。

プログラムが0と1で出来ているのであれば、直接0と1を入力して作ればよさそうなものだ。では、なぜそうしないのか。0と1の羅列では、人間には何が書かれているか分からないからだ。


質問を変えよう。ソースコードは誰のために書いているのか? 「家族のためと」かいうのは無しだ。

「ユーザーのため」という答えはありそうだ。しかし、ユーザーがほしいのは利用可能なプログラムであって、ソースコードではない。では、「コンピュータのため」かというと、そうでもない。繰り返しになるが、コンピュータは0と1の連続しか理解できないからだ。それならば、コンパイラやインタープリタのためか? しかし、それは本末転倒というものだろう(※)。

ソースコードは、それを読む人のために書くのである

プログラミング言語は、0と1からなるプログラムを、人間が理解できる表現で記述するために生み出されたものだからだ。つまり、何のためにソースコードを書くのか、という質問に戻ると、「読者に読んでもらうため」なのある。もちろん、ここで言う読者には、そのプログラマ本人を含む。


言い換えれば、ソースコードを書く場合に最も重要なことは、「読者に分かりやすく書くこと」である。

いやいや、「処理速度が速いこと」や「メモリ効率が良いこと」のほうが重要だ、という人がいるかもしれない。しかし、それは「プログラムの価値」であって、「ソースコードの価値」ではない。ただ、両者には、直接的かつ一方的な関係があって、ソースコードの書き方次第で、プログラムの価値が決まるというだけである。

それでは、どうやったら、ソースコードの価値とプログラムの価値の両方を高めることができるのか? そのような模索こそが、今もなお新しいプログラミング言語が作られている背景にあるのではないだろうか。


ソースコードが読者に理解してもらうことを目的としている以上、読者に理解してもらえないソースコードは、存在価値が無い。

しかし、実際には、それに近いソースコードが、ごろごろしている。ともすれば、世の中のソースコードの大半がそういった価値の低いソースなのではないかと不安になるくらいである。

プログラミングの目的は、正常に動くプログラムを作ることではある。しかし、ソースコードを書くというときは、常に「読者の眼」というものを意識し、分かりやすい記述を心がけてもらいたいのである。





※コンパイラもインタープリタも、ソースコードをプログラム(コンピュータの言葉)に変換するもの。コンパイラは翻訳し、インタープリタは通訳する。



■関連記事
あなたにもできること
真夜中のコード
誰のコード?



美しいC++プログラミング見本帖
柏原 正三
翔泳社 (2004/10/09)
売り上げランキング: 64,672
おすすめ度の平均: 5
5 2冊目に読む本


Code Reading―オープンソースから学ぶソフトウェア開発技法
トップスタジオ まつもと ゆきひろ 平林 俊一 鵜飼 文敏
毎日コミュニケーションズ (2004/06/01)
売り上げランキング: 30,286
おすすめ度の平均: 4
4 ホップ・ステップ・ジャンプ
3 例題がわかりにくい
4 サブタイトルの方が適切?