Различение Рейхенбаха. О рождении Порядка из Хаоса
### Тревога инженера
Всякий, кто строил достаточно большую систему — программную, организационную, какую угодно, — знает это состояние. Система выросла. Она работает. Но выросла она не по плану, а патчами: каждое исправление было ответом на конкретный сбой, каждое новое понятие вводилось тогда, когда без него что-то ломалось, каждое правило дописывалось после того, как его отсутствие ударило там, где никто не ожидал. История репозитория — летопись пожаротушения. И вот наступает момент, когда хочется переродить систему набело: взять всё, чему научились, и выстроить правильно, с чистого листа.
Здесь и приходит тревога, у которой редко бывает точная формулировка, но суть её такова: **с какой стати правильный порядок появится на основании образца, который сам родился из хаотической доработки?** Образец — продукт случайной последовательности столкновений с багами и недодуманностями. Если я начну строить «как в образце, только чисто», я воспроизведу не порядок, а окаменевший хаос. А если начну переупорядочивать — где гарантия, что переупорядочивание сойдётся, а не превратится в бесконечный цикл: каждое улучшение открывает вид на следующее, и стройка не кончается никогда?
Тревога серьёзная, и отмахиваться от неё глупо. Но у неё есть точное разрешение, и нашёл его не инженер, а философ — почти сто лет назад и по другому поводу.
### Различение Рейхенбаха
В 1938 году Ганс Рейхенбах развёл два понятия, которые до него постоянно склеивались: **контекст открытия** и **контекст обоснования**. Порядок, в котором знание было добыто, — и порядок, в котором оно обосновано, — это два разных порядка, и второй не обязан воспроизводить первый.
Наука вся устроена на этом зазоре. Кекуле увидел структуру бензола, задремав у камина; обоснование этой структуры не содержит ни камина, ни дрёмы. Открытия совершаются в беспорядке — по аналогии, по ошибке, со зла, во сне. Обоснование же строится потом и отдельно: из выписанных посылок, в порядке логической зависимости, и проверяется по этим посылкам, а не по биографии открывателя. Учебник физики не повторяет историю физики — и не должен: это два разных жанра об одном содержании. Хаотичный генезис не компрометирует знание, потому что знание никогда и не обосновывалось его генезисом.
Применим различение к нашей тревоге, и она сразу меняет форму. Страх звучал так: «правильный порядок не может произойти из хаотичного образца». Это правда — но это и не требуется. Порядок вообще не выводится *из образца*. Он выводится из другого объекта, который скрыт внутри образца и который надо оттуда извлечь.
### Хаос под отбором — это не хаос
Сначала о том, почему накопленный «хаос» ценнее, чем кажется его уставшему автору.
Доработка системы только выглядит случайной. Каждое исправление, прежде чем остаться в системе, прошло отбор: оно либо починило реальный сбой, либо было выброшено. Тесты, ревью, эксплуатация, недовольные пользователи — всё это давление среды. А хаотичная вариация под жёстким отбором — это не хаос; это эволюция. У эволюции же есть известное свойство: то, что выжило, кодирует реальные ограничения среды. Глаз не случаен — случайны были мутации; отбор сделал из их шума слепок оптики.
Но у эволюции есть и известный порок: она кодирует ограничения **в порядке столкновения с ними, а не в порядке их зависимости**. Каждый выживший патч — это одно настоящее ограничение реальности, обнаруженное битьём головы об стену. Совокупность патчей — полный конспект всех стен, об которые система ударилась. Только записан этот конспект в порядке ударов — то есть в порядке исторической случайности.
Вот теперь видно, что именно лежит в накопленном корпусе. Не образец для подражания. Руда. Из руды не строят — из руды выплавляют.
### Выплавка: ограничения вместо истории
Операция выплавки проста по формулировке и трудоёмка по исполнению. По каждому элементу выжившей системы — каждому правилу, проверке, понятию — задаётся один вопрос: *какое нарушение реальности он предотвращает?* Не «когда и почему мы его ввели» — это контекст открытия, его отбрасываем. А «что сломается, если его убрать» — это и есть само ограничение, очищенное от биографии.
Результат — каталог ограничений. Он радикально меньше истории, из которой извлечён: история содержала порядок открытий, тупики, переформулировки, следы отменённых решений — всю повествовательную ткань. Повествование было связным, но связность — не информация; информационное содержание долгой и драматичной истории доработки исчерпывается множеством найденных ограничений. Остальное — путевая пыль.
А дальше происходит то, ради чего всё затевалось: **порядок выводится из каталога — и больше ниоткуда.** Ограничения зависят друг от друга: одно осмысленно только тогда, когда выполнено другое; проверка целого предполагает готовность частей; правило о связях предполагает существование связываемого. Эти зависимости образуют структуру — и эта структура, а не последовательность коммитов, есть искомый «правильный порядок». Он не скопирован с образца и не придуман из головы: он *вычислен* из ограничений, каждое из которых добыто опытом и оплачено сбоем.
Так разрешается парадокс. Правильный порядок действительно не происходит из хаотичного образца — он происходит из того, *обо что* хаос ударялся. Стены, встреченные блужданием, не блуждают. Карту пишет не путник — карту пишет стена.
### Почему стройка кончается
Осталась вторая половина тревоги — бесконечный цикл переупорядочивания. У него тоже есть точный механизм, и его стоит назвать, потому что названный механизм перестаёт быть проклятием.
Цикл порождается одним условием: **когда спецификацией служит сам образец.** Если эталон правильности — «как у нас сейчас, только лучше», то каждое улучшение сдвигает эталон, и цель движется вместе со стрелком. Сходимости нет не из-за сложности задачи, а по построению: оптимизация ведётся относительно движущейся мишени.
Каталог ограничений разрывает этот круг, потому что он неподвижен. Как только спецификацией становится «все ограничения выполнены», происходят две вещи. Во-первых, любые две реализации, удовлетворяющие каталогу, **равно корректны** — и споры о порядке, не меняющие выполнимости ограничений, аннулируются как беспредметные. Можно бесконечно расставлять мебель; нельзя бесконечно выполнять конечный список условий. Во-вторых, появляется честный критерий завершения: работа кончена, когда ограничения выполнены, — а не когда результат стал «похож» на выстраданный образец. Сходимость вместо счёта итераций; выполнимость вместо сходства.
Есть и побочный выигрыш, едва ли не ценнее основного. Выплавка отделяет ограничения от лесов: часть выжившего в системе — не стены реальности, а обходы давно исправленных багов, подпорки умерших решений, шрамы конкретного пути. В истории они неотличимы от настоящих правил — у них такие же коммиты. В каталоге они отличимы мгновенно: на вопрос «что сломается, если это убрать» у них нет ответа. Их удаление перестаёт быть рискованной археологией и становится рутиной с критерием.
### Старый приём
Ничего нового в этой операции нет — и это лучшая её рекомендация. Право веками растёт хаотично, прецедент за прецедентом, тяжба за тяжбой, — а потом приходит кодификация: из тысяч казусов извлекаются нормы, и кодекс упорядочивается по зависимости норм, а не по датам процессов. Грамматика складывается стихийно, в миллионах разговоров, — а потом описывается системой правил, в которой нет и следа того, в каком порядке язык эти правила нащупывал. Учебник, кодекс, аксиоматика — всё это один и тот же жанр: **контекст обоснования, выплавленный из контекста открытия.** Цивилизация только этим и занимается.
Нужна лишь одна честная оговорка. Каталог ограничений полон только относительно встреченной реальности: он содержит все стены, об которые система успела удариться, и ни одной из тех, что ждут впереди. Выплавка не отменяет будущих столкновений — она гарантирует другое: что уже оплаченные уроки не будут оплачены вторично и что новые ограничения лягут в структуру, а не в кучу. Это не всеведение. Это всего лишь отказ платить дважды — но в долгой работе именно он отличает рост от блуждания.
### Итог
Тревога инженера стояла на склейке двух порядков: казалось, что порядок будущей системы должен как-то унаследоваться от порядка её создания — а наследовать там нечего, кроме хаоса. Различение Рейхенбаха расклеивает их: у создания свой порядок, у обоснования свой, и второй строится не из первого, а из добытых первым ограничений. Хаос доработки был не позором, который надо скрыть, а экспедицией, которую надо оприходовать: каждый сбой — промер глубины, каждый выживший патч — отметка на лоции. Само блуждание не станет маршрутом. Но без блуждания не было бы карты — а карта, выплавленная честно, не требует повторять путь, которым её добыли.
Свидетельство о публикации №226061201239