software rot



Предыдущая | Следующая

software rot (загнивание программного продукта), сущ. Этот термин используется в случаях, когда после продолжительного перерыва бывшая вполне функциональной и работоспособной программа начинает сбоить или вообще отказывается работать. Некоторые шутники объясняют этот эффект гниением битов (см. bit rot). На самом деле о загнивании программы можно говорить только в том случае, когда устаревают соглашения, по которым она когда-то писалась, и если в программе не предусмотрена обработка данного несоответствия.Например, во многих написанных на COBOL программах в качестве указателя года зарезервирована переменная для двузначных чисел, поэтому после 2000 года эти программы перестанут работать корректно. Аналогичные проблемы возникают у людей, отметивших свое столетие и вынужденных иметь дело с программами, разработчики которых даже мысли не допускали, что кому-то захочется жить так долго. В 1990 году в Северной Каролине один пожилой джентльмен, родившийся в 1889 году, вздумал возобновить свои водительские права. Компьютерная система отказалась выдать ему корочку (молод еще за руль садиться), поскольку в ней было зарезервировано только два символа на возраст, и поэтому она не смогла различить между собой числа 1 и 101. Историческая справка. В самых ранних компьютерных системах (особенно в системе R1) проблема загнивания программ была вовсе не мифической. Иногда оказывалось, что программа, в которой использовалась определенная и очень специфическая команда, и которая некоторое время не запускалась на выполнение, вдруг начинала делать нечто совсем непохожее на то, что делала раньше. ['Послушай, мне для того-то и того-то нужна новая, вот такая-то команда. Давай хапнем (см. snarl) и приспособим вот эту – все равно ей никто не пользуется.'] Другой классический пример «загнивания программ» относится к временам, когда в MIT один ушлый хакер незначительными изменениями в аппаратуре смог удвоить скорость выполнения команды безусловного перехода на PDP-6, но при этом перестала работать «музыкальная» программа (происходило нарушение темпа в музыке). Ее автору пришлось писать дополнительную подпрограмму, которая перед запуском самой музыкальной программы проверяла скорость выполнения этой команды (т.е. проверяла, как быстро сегодня работает PDP-6) и в случае необходимости вставляла задержки.