software rot
名詞
しばらく使われていないソフトウェアがloseする傾向を表すために使われる用語。そうした故障は、半ば冗談めかしてbit rotのせいにされることがある。より一般的には、software rotが襲うのは、プログラムの前提が時代遅れになったときだ。設計が十分にrobustでないと、そのせいで不可解な壊れ方をすることがある。code rot(コード腐れ)の同義語。link rotも参照。
たとえば、COBOLプログラムの設計に蔓延する近視眼ゆえに、かなりの数のプログラムが、2桁の年カウンタが2000年の初めにwrap aroundを起こしたときにsoftware rotに屈した。実のところ、これに類するlossageは、想像力に欠ける間抜けが設計したコンピュータソフトウェアと付き合わされる100歳超の人々をしばしば苦しめている。そうした事件のひとつは、1990年にちょっとした世間の騒ぎの的になった。1889年生まれの紳士が、ノースカロライナ州ローリーで運転免許証の更新を申請したときのことだ。新しいシステムはカードの発行を拒否した。おそらく、2桁の年では101歳と1歳が区別できなかったからだ。
歴史的な注記: 神話的なものよりもさらにおかしな意味でのsoftware rotは、初期の研究用コンピュータ(たとえばR1。grind crankを参照)では現実の問題だった。風変わりな命令に依存するプログラムをしばらく実行していないと、ユーザーは、オペコードがもはやかつてと同じことをしないのに気づくかもしれなかった。(「おい、誰それにこれこれをする命令が要るんだ。このオペコードをsnarfしていいよな? 誰も使ってないし。」)もうひとつの古典的な例は、あるMITのハッカーがPDP-6で無条件ジャンプ命令の速度を倍にする簡単な方法を見つけ、ハードウェアにパッチを当てたときに生まれた。あいにく、これは音楽再生プログラム中の壊れやすいタイミングソフトウェアを壊し、その出力を音痴にした。これは、タイミングループの速度を実時間クロックと比較する防御的な初期化ルーチンを追加することで修正された。言い換えれば、それはその日PDP-6がどれだけ速いかを割り出し、適切に補正したのだ。
bit rotと比較せよ。