メディアとしてのソースコード
「誰のためのコード?
」にも書いたように、ソースコードはその読者のために書くものだ。したがって、コンピュータへの命令(プログラム=狭義の「コード」)を書くだけではなく、読者が求める情報を盛り込んだり、読みやすくするための工夫をすべきである。
「コメント」は、そのための手段のひとつである。「インデント
」や「改行」もそうだ。例えば、「そこに空行(改行だけの行)があるかないか」という違いだけで、そのソースコードが「読者に伝える力」が違ってくる。
ソースコードは、読者に何かを伝えるという意味において、「メディア」である。つまり、ソースコードは文書(ドキュメント)なのである。そして、一般の文書と同じように、本文の文章だけでなく、見出しや注釈(コメント)、レイアウト(インデントや改行)といった構成要素の全てが調和しなければ、十分な「伝達力」を発揮することは出来ない。
つまり、プログラマの仕事は、単にプログラムを作るというだけだけでなく、ソースコードという文書を作ることによって、プログラムの仕様や構造等を「伝える」ことなのである。
実際、普通の文書(ビジネス文書)を書くのが上手い人は、コメントを書くのも上手い。そして、悲しいかな、普通の文書がまともに書けないプログラマは多い(※)。
書くべきか、書かざるべきか
コメントというと、「書くほうがよいか、書かないほうがよいか」という議論になりがちである。「もっとコメントを書け」と言われることもあれば、「余計なコメントを書くな」と言われることもある。結局、どうしたらいいのかわからなくなってしまったプログラマもいるのではないだろうか。
特に、書かないほうがよいという理由については、ある側面から見ると説得力があるため、極端な無用論に走ってしまう場合がある。
例えば、余計なコメントがあるとソースが読みにくくなる、という主張だ。しかし、コメントが下手な人が多いからといって、コメントを廃止べきというのは暴論だろう。自動車事故が多いからといって、自動車を無くせというのと同じである。
コメント無用論について、もっと説得力がある主張は、「コメントを書かないと読めないようなコードは、そもそも書き方がよくない」というものである。読みやすいプログラミングを心がけている人ほど、共鳴しやすい意見だろう。しかし、コードを読みやすく書くべきだというのは、コメントを書くべきかどうかに関わらず、当り前のことである。確かに、下手糞なコードを誤魔化すためにコメントを悪用するようなことは言語道断だ。しかし、彼らがコメントを書くのを止めれば、コードが上手く書けるようになるかといえば、全くそんなことはない。
世の中には、下手なコードや下手なコメントが蔓延しており、コメントの誤用、悪用ばかりが目につく。逆に、上手いコメントは目立たないものだ。邪魔にならないからこそ「適切なコメント」なのだから。このことが、コメントの存在価値を見誤らせてしまっているのではないだろうか。
本当は、適切なコードがそれだけで存在しているよりも、適切なコードに適切なコメントがついている方が、読みやすいものだ。また、コード(プログラミング言語)だけでは表現しきれない情報を、コメント(自然言語)で補足するということも、「文書」としての価値を高める上で必要なことである。
結局のところ、「コメントを書くべきか、書かざるべきか」といえば、「下手なコメントは書くな。上手なコメントを書け」ということである。
コメントとは何か
繰り返しになるが、コメントとは、コードを読みやすくし、コードだけでは表現できない情報を付加するための手段である。
しかし、使い方を間違えると、むしろ読みにくくなったり、冗長になったりしてしまう。言わば諸刃の剣だ。プログラムの動作に関係ないなどと侮ることなく、心して記すべし、ということだろう。
※文書以前に、文章が書けない人も多い。「てにをは」がおかしいとか、句読点が打てないとか。「修飾」が多すぎて、意味が読み取れないことも。新人研修で、いちいちそんなレベルのことを指導している有様。大学まで出ていながら、まともに日本語が書けないとは。日本の教育はいったいどうなっているのか!?
■関連記事
・もっとコメント論 ~その2~ 見出しとしてのコメント
・もっとコメント論 ~その3~ 注釈としてのコメント
・もっとコメント論 ~その4~ システムの開発や保守のために
・もっとコメント論 ~その5~ コードが求めるコメント
講談社 (1999/03)
売り上げランキング: 4,922
チェックポイント付きで実用的
読みやすい
アスキー (2002/06)
売り上げランキング: 99,535
オープンソースという概念への前提
訳が最悪