プログラム世の中には、常軌を逸したプログラムというものが存在するものだ。いままでコキタナイ(と言い切ってしまおう)プログラムをいじり回す羽目に陥ったことは数々あれど。21世紀も10年経過したいまになって、最長不倒関数に出くわすとは、思いもしなかった。orz古くからのプログラマであれば、誰でも知っている古典的名作、Cプログラミング診断室という本がある。一時絶版したり、復刻版が出たりした本だ。現在、書店に並んでいるかどうかは定かではないが、幸いなことに著者が好意(でいいのかな?)でWebに公開しているので、2011年10月6日現在、読むことができる。iOSにObjective-C、AndroidにJava、が主流の現在でさえ、その内容は実に有意義なので、読んだことがないプログラマには、一読をお勧めする。・・・というか、できれば本を購入して、精読しましょう。この本の中に、最長不倒関数というものが出てくる。コキタナイプログラムの一つとして、ほぼ無条件で駄目子ちゃんの烙印が押されるプログラムだ。一言で言えば、「一つの関数(メソッド)の行数が多すぎて解読が困難」なプログラムだ。バグの温床にもなるし、改修も困難、他のプログラムへの流用や応用もほぼ不可能、という、わがまま放題のプログラムだったりする。自分も、このようなプログラムにお目にかかったことは、多々ある。今世紀に入って、プログラム手法も洗練されてきた現在において、このようなプログラムにお目にかかることは、ほぼ無くなっていたのだが。orzさすがに、プログラム内容をさらすわけにはいかないのだが。一つの関数の長さが、3520行。switch〜case文。なんてコメントしていいものやら。唯一の救いが、多少なりともコメントの書き込みがある、ぐらいか。・・・部分的に、間違った内容のコメントもあるけど(コメントの弊害についても、上記「Cプログラミング診断室」で触れられている通り)。