Cに限りませんが、下手な人の書いたプログラムは本当に汚ない。もちろん 変な動きばかりしてくれます。「もうプログラムを組むな。邪魔だから消えて ろ」と言いたくなるようなプログラマがいるものです。全ソースを廃棄処分に し、ゼロから作り直した方が絶対に早いし、安いし、信頼性も向上すると思わ れることが度々ありました。 私は、コンピュータを始めたころから幸運に恵まれ、かなり優秀な技術者達 の中に身を置くことができました。そこではプログラムを組むだけではなく、 論文や記事を書いたり、単行本を執筆するような人達も大勢いて、仕事関係や 仲間内にはあまり下手なプログラムを組む人はいませんでした。 そしてパソコンが普及し、プログラミング人口が増大し、コンピュータにつ いて勉強していない人達もプログラムを組むようになりました。私も最初はア マチュアプログラマだったので、より多くの人達がプログラムを組めるように なるのは大賛成でしたし、そのような時代がやって来るようにする仕事をして いた時期もありました。 普及してくると、汚ないプログラム、下手なプログラムが氾濫してくるよう になりました。日本のプログラミングの底辺は悲惨で、どうしてこんなに汚な く、下手に書けるのか悩んでしまうものが横行しています。どういう考えをし たら、単純なプログラムを途方もなく難解なプログラムに変えられるのか、私 は長年興味を持って見ていました。 下手なプログラマはさぼっている訳ではありません。それどころか、上手な プログラマより遥かに努力しているのです。努力しているけれども結果が出な いだけです。簡単なプログラムで済むと思われることを、頭がパニックになっ てしまうような難解至極なプログラムを書いて、必死でデバッグしているもの です。プログラムのことを知らない人が見たら、この人はものすごい努力家で、 尊敬すべきコンピュータ技術者と思うでしょう。 でも、残業、徹夜の連続で、必死で作ったプログラムはバグだらけで、まず きちんと動くことはないでしょう。それより、有能なプログラマがちょこちょ こっと作ったものの方が、はるかに完璧な動作をするものです。ある人のプロ グラムが10,000行あって大変動作が遅かったのを、別の人が書き直したら 1,000行で済み、実行速度は100倍になってしまうことも珍しいことではありま せん。一体この差は何でしょうか? このプログラミングにおける最も重要だけれども、誰も触れたがらない問題 について、色々思い当たったことを『Software Design』に1991年5月号から 1993年1月号まで『プログラミング診断室』として連載しました。本書は、そ の内容を元に、加筆、修正したものです。連載では誌面の関係で掲載できなかっ たものも、できるだけ省略なしに載せるようにしました。 下手なプログラムを診断し、何が病気の原因かを指摘し、治療方法を示し、 場合によっては手術室を映し出し、手術後のプログラムを明示するという、現 実をできるだけ赤裸々に描くことに主眼を置いています。診断するプログラム も、連載のために作ったものではなく、実際に仕事などで本当に必要になり作 られたものの中から、本当に病気に侵されているものを選んでいます。 記述内容は、上級プログラマの下級プログラマに対する、愚痴、非難、失望、 ため息の集大成と言った方が当たっているでしょう。きれいごとを言ってもプ ログラムの腕が上がる訳ではありません。それは単に甘やかしているだけに過 ぎません。本音を書いて真実をさらし出すことにより、プログラムの本当の組 み方を知ってもらうことができます。それによって始めてプログラミング技術 の上達が促進できると思い、露骨に書いてしまいました。 本書は、Cプログラムの入門書ではありません。入門レベルを終えた初心者、 さらに中級上級へと進みたい人への技術的および精神的な指針を示しています。 また、コンピュータについて詳しくない上司や管理部門の人々にとっては、読 み物の部分だけを読むことで、プログラム開発に関する見方はもとより、技術 者の育て方から外注の使い方までの参考になるでしょう。そして、中級以上の プログラマにとっては、気楽に読める笑い話、酒の肴になれば、著者としてこ の上ない光栄です。 最後になりましたが、本書の執筆に対して大変多くの方々にお世話になりま した。なかなか原稿をまとめ上げない私を辛抱強く待ってくださった山田編集 部長、プログラム集めをして下さった SoftwareDesign編集部の方々、単行本 化をされた跡部和之副編集長には、作業がちょうど度重なる出張の時期と重なっ て予想外の後れを出してしまい、ずいぶんハラハラさせたことと思います。そ して、連載および単行本のためにプログラムの掲載を許可してくださった方々、 恥を顧みず下手なプログラムを送ってくださった方々に、この場を借りてお礼 申し上げます。 1993年6月 藤原博文 |