これから書くことは,「わかっている」 ひとにとってはあたりまえのこと,あるいはまだおまえは十分わかっていないといわれることかもしれないのですが,一般にはプログラム全体を理解することの重要性がまだよく理解されていないとおもわれるので,書くことにします.
企業でソフトウェアの研究開発にかかわっているひとのなかで,実用的ないし準実用的なプログラムの全体を自分で書いた,ないし全体を把握した経験があるひとは,すくなくとも日本においては,かならずしもおおくないようにみえます. 会社にはいって目にするのは,1 人ではあつかいきれない規模のプログラムであるばあいがおおいので,(たとえ大規模プログラムの全体に責任がある立場にあっても) 全体を把握した経験がなく,そういうものだ / それしかしょうがない とおもっているようにみえます. プログラムは設計だけすればよくて,プログラム (というよりは 「コード」 という,ばかにしたようなことばでよばれることがおおい) をみる必要はないとおもっているひともおおいようにみうけられます. しかし,これはおおまちがいだとおもいます.
よのなかにでまわっているプログラムのおおくは,ほんとうに必要な規模よりはるかにおおきく,複雑になっています. そうなるのは,怠惰のためにプログラムがきちんと洗練されていないからだというばあいもありますが,おおくは群盲,象をなでる状態,つまりプログラムの機能のうち一部しか理解せずにそれを書いてしまうからそうなるのだとおもわれます. こうなってしまうのは,最初に書いたようにプログラム全体を把握した経験があるひとがすくないからです. 全体が把握できないのは能力がひくいからではなくて,経験がないからです. ある程度 (たとえば数 1000 行) の規模のプログラムをひとりで書く,あるいはその全体を把握するという訓練をすれば,事態は改善するのではないかとおもわれてなりません.
私は,たとえば 「Java による対話 (チャット) のプログラム例」 というプログラムを公開することによって,すこしでもそういう方向に寄与することができないものかとおもっています.