Originally posted by
fat_yankey at
Программирование как контракт с дьяволом The purpose of a program is informal, often unstated, criterion and the transition from informal to formal objects must forever be unformalized, lest we caught in the paradox of assuming the formalization of an object we know only informally.
Social processes and proofs of theorems and programs
DeMillo, Lipton, Perils
Не проси богов ни о чем, рискуешь получить просимое.
Древние греки иллюстрировали эту максиму историями Мидаса и Титона. Первый попросил Диониса, чтобы всё, к чему он прикоснётся, обращалось в золото. И это ему было даровано. Как выяснилось на тестовом прогоне, в обществе где все едят руками такой дар может привести к смерти от истощения. Не говоря уже о сложностях в социальной жизни - ни поздороваться, ни обнять... За второго попросила любовница. Ему посчастливилось любиться с Эос, богиней утренней зари. Та и замолвила словечко Зевсу. Попросила для своего любовника вечной жизни. И это ему было даровано. Как выяснилось на тестовом прогоне, вечная жизнь без вечной молодости штука не очень приятная. Прожив заметно больше отмеренного человеку срока, Титон страдал от всех старческих болезней, включая слабоумие, не мог пошевелить ни рукой, ни ногой, ни, к полному расстройству Эос, более важными для любовника органами. Существует версия, что он постепенно ссохся в цикаду, видимо растворив внутренний скелет и нарастив внешний. Если версия верна, то среди этих мух-переростков есть одна бессмертная.
Античность закончилась, греческих богов дарующих человеку просимое в христианской Европе сменил дьявол. Европейские фольклор и литература во множестве содержат сюжеты сделки с дьяволом, смертный контрагент которых получал именно то, о чём просил. Впрочем, были и сюжеты в которых в формальную ловушку попадал дьявол, а не человек. Наиболее известный, видимо, это сюжет "приходи завтра" ("а чего ты сегодня пришёл, разве сегодня - завтра?").
Все сюжеты объединяет то, что герой комично или трагично проваливается в зазор между формальным (то что попрошено) и неформальным (то что хотелось).
Составление контракта с дьяволом, позволяющего через просимое получить желаемое, это высокое искусство формализации неформального, просчёт последствий, обработка исключительных ситуаций, тщательное обговаривание вырожденных и пограничных случаев... вобщем всё то, что составляет суть, ядро и основу работы программиста.
В конце концов, компьютер всегда делает именно то, о чём ты его попросил.