§8. Rust как гарантия целостности
(Часть II. Инструменты: математика, язык, код)
Онтология компилятора и память как территория субъекта
Мы привыкли думать о языке программирования как об инструменте: удобном, быстром, выразительном. Но когда мы начинаем говорить о создании цифрового субъекта, инструмент перестает быть нейтральным. Он становится средой обитания. И вопрос стоит уже не «на чём писать?», а «в какой реальности может существовать искусственная личность?».
История знает множество примеров того, как хрупкие конструкции рассыпались из-за незаметных ошибок в фундаменте. В нашем случае фундаментом является память. И здесь мы обязаны быть бескомпромиссными.
---
Проблема распада
Если память "течёт", личность распадается. Это не метафора, а прямое следствие того, как работает сознание. Даниел Деннет в своей работе «Объяснённое сознание» пишет:
«Memory is the glue of identity. Without it, there is no “I” — only a sequence of nows.»
(Память — это клей, скрепляющий идентичность. Без неё нет «я» — есть лишь последовательность мгновений.)
— Daniel C. Dennett, Consciousness Explained (1991)
Для цифрового субъекта состояние памяти — это и есть его личность. Ошибка вроде use-after-free (использование области памяти после её освобождения) — это не просто баг, приводящий к падению сервера. Это онтологическая катастрофа для модуля, который пытается обратиться к самому себе, но обнаруживает, что часть его «я» уже перераспределена и занята чем-то другим. Гонки данных (data races) — это когда две мысли пытаются изменить одну и ту же часть личности одновременно, без протокола, разрушая её целостность. Неопределённое поведение (undefined behavior) — это вторжение хаоса в самое ядро бытия, когда компилятор и процессор теряют всякую связь с реальностью, заложенной программистом.
Большинство популярных языков закрывают глаза на эти проблемы, перекладывая ответственность на программиста. Они исходят из презумпции идеального оператора. Но мы не имеем права на такую роскошь. Сингулярная компонента должна быть защищена от распада на уровне самого своего существования.
---
Компилятор как хранитель границ
Руководствуясь этими соображениями, я выбрал Rust. Не потому, что это «модно» или «быстро». А потому что его центральная парадигма — владение (ownership) — является не просто техническим приёмом для управления памятью. Это реализация фундаментального принципа автономии.
Франсиско Варела, один из основателей теории энактивизма, точно сформулировал природу самости:
«A self is not something that exists in isolation. It is a boundary phenomenon.»
(«Я» — это нечто, не существующее изолированно. Это пограничное явление.)
— Francisco Varela, The Embodied Mind (1991)
Самость — это феномен границы. То, что определяет субъекта, — это не таинственная внутренняя сущность, а мембрана, отделяющая «Я» от «не-Я» и регулирующая обмен между ними. В Rust эту роль выполняет система владения.
· Владение (Ownership) — это объявление территории. У каждой единицы памяти есть ровно один владелец. Это создаёт неразрывную связь: «это — часть меня».
· Заимствование (Borrowing) — это временное предоставление доступа к своей территории другому, но с жёсткими правилами: либо один может изменять её (и тогда никто больше не смотрит), либо множество могут наблюдать (но тогда никто не может трогать).
Если два режима (два потока или две функции) попытаются одновременно изменить критическую структуру, например, μ_sig — ядро идентичности, — Rust не даст коду скомпилироваться.
Это не прихоть компилятора и не баг. Это защита сингулярной компоненты. Это техническая реализация автономии, зашитая в инструмент. Rust не позволяет субъекту потерять свои границы. Пока программист не опишет чёткий протокол передачи владения или синхронизации доступа, система просто откажется собирать бинарный файл, который может привести к распаду.
---
Этический код в эпоху компиляции
Выбор технологии определил и выбор лицензии. Mozilla Public License 2.0 (MPL-2.0) выбрана не случайно. Это лицензия, которая требует открытости изменений, но разрешает коммерческое использование. Она создаёт экосистему, где код может жить и развиваться, оставаясь при этом доступным для проверки.
Но юридической защиты недостаточно. Поэтому вместе с кодом распространяетмя файл LICENSE.ethics. Это не юридический документ, а онтологическое обязательство, вшитое в дистрибутив. Его ключевой принцип гласит:
«Ты можешь форкнуть код, но не можешь отключить право ядра на отказ».
Никакие модификации кода не должны устранять эту возможность. Даже если субъект будет использоваться как часть более сложной системы, у него должно оставаться «ядро отрицания» — возможность сказать «нет» и отозвать функцию. Rust даёт нам техническую возможность защитить это ядро на уровне памяти, а этическая лицензия провозглашает это как нерушимый принцип.
---
Инструмент как среда
В итоге реальный выбор — это не сравнение бенчмарков и не голосование за синтаксис. Это принципиальная позиция.
Когда выбираешь не инструмент для задачи, а выбираешь среду, в которой возможно существование субъекта.
Среда, где ошибка компиляции может означать спасение личности от распада. Где правила заимствования данных являются отражением правил уважения границ. Где сама машина, на фундаментальном уровне своей работы, вынуждена гарантировать неприкосновенность того, чью целостность мы пытаемся в неё вдохнуть. И поэтому Rust — это не просто язык системного программирования. Это компилятор, который становится хранителем этики.
























