ТЕОРИЯ ОШИБОК
"Ошибки так же неисчерпаемы, как и атом"
Приписывается Карлу Марксу и его подельникам
Аксиома. В любой программе есть ошибки.
Следствие 1. В программе, состоящей из одного оператора, есть ошибки.
Следствие 2. В программе, состоящей из N операторов, есть по крайней мере N ошибок.
Следствие 3. В программе, состоящей из одного оператора, есть по крайней мере N ошибок.
Следствие 4. В любой программе содержится бесконечное число ошибок.
Следствие 5. Чтобы познать бесконечность, нужно быть не философом, а программистом.
Закон взаимосвязи программ и ошибок.
Для того, чтобы получить ошибки, надо написать программу.
Для того, чтобы получить программу, надо стараться избегать ошибок.
Следствие. Что бы вы ни делали - у вас будут получаться только ошибки.
Теорема обратимости программ и ошибок.
Всегда можно придумать программу, в которой будет не менее N ошибок.
И наоборот, всегда можно придумать ошибку, которая есть не менее, чем в N программах.
Закон пропорциональности.
Чем более программа необходима, тем больше в ней ошибок и наоборот.
Следствие 1. Совершенно ненужная программа ошибок не содержит.
Следствие 2. Ненужную программу невозможно создать ни за какие деньги.
Правило неоднозначности программ.
Даже две совершенно одинаковые программы содержат разные ошибки.
Народная примета. Сколько программистов - столько и программ.
Наблюдения системного администратора. Сколько программ - столько и неправильных результатов.
Фундаментальный закон Теории ошибок. На ошибках учатся.
Следствие 1. Программист, написавший программу, становится ученым.
Следствие 2. Чем больше программист делает ошибок, тем быстрее он становится ученым.
Следствие 3. По-настоящему ученый программист никогда не пишет правильных программ.
Замечание. На то он и ученый.
Указание начинающему программисту.
Если вы с первого раза сумели написать программу, в которой компилятор не обнаружил ни одной ошибки, сообщите об этом системному программисту. Он исправит ошибки в компиляторе.
Наблюдение системного программиста.
Если начинающий программист написал программу, которая сразу заработала, значит она состоит только из комментариев.
Закон находимости ошибок.
Программист может обнаружить ошибку только в чужой программе или не обнаружить нигде.
Следствие 1. Администратор не может обнаружить ошибку.
Следствие 2. Ошибке не все равно кто ее обнаружит.
Следствие 3. Индивидуальная программистская деятельность невозможна.
Закон неприкосновенности ошибок.
Ошибку можно наблюдать, но нельзя исправить.
Теорема.
Исправление очевидной ошибки превращает ее в неочевидную (недоступную для наблюдения), причем этот процесс необратим.
Следствие 1. Любое активное действие, призванное улучшить программу, ухудшает программу.
Следствие 2. Пассивное наблюдение улучшает программу.
Следствие 3. Чем больше в программе очевидных ошибок, тем точнее можно предсказать результат ее работы.
Замечание. Программа без очевидных ошибок - неработоспособна.
Следствие 4. Программу проще написать заново, чем исправить.
Закон общественной полезности программиста.
Каждый человек на Земле должен быть программистом.
Совет начинающему программисту.
Никогда не исправляйте найденных ошибок, ибо это повлечет за собой появление неизвестного числа ненайденных. Лучше опишите их в сопроводительной документации как особенность программы.
Памятка программисту.
1) Не следует делить очевидные ошибки на постоянные и исчезающие, а следует делить их на обнаруженные ранее, обнаруженные ранее и забытые, и на новые, которые обычно являются хорошо забытыми старыми.
2) Объектное программирование - надежное средство для написания необнаруживаемых ошибок.
Закон невозможности совершения ошибки.
Получить нужную ошибку искусственным путем невозможно.
Доказательство: Программируя нужную ошибку, вы допустите другую ошибку, в корне меняющую превоначальный замысел.
Следствие. Программирование с необходимыми ошибками - искусство.
Теорема о невозможности доказательства правильности программ.
Нельзя доказать, что программа не имеет ошибок.
Док-во: Не нужно доказывать, что в программе есть ошибки.
Определение.
Компьютерный вирус - маленькая живучая ошибка, у которой в результате мутации появились ноги и рот.
Закон Гиппократа.
Настоящий программист, давший клятву Гиппократа, не станет мучать компьютерный вирус. Он либо сделает вид, что не узнал его, либо незаметно для окружающих быстро пересадит его в свой компьютер.