Шесть осей, четыре причины, два закона и порог, за которым инженерия кончается
Философия всегда была умозрительной: Платон не мог поставить эксперимент над тем, отделены ли Идеи от вещей. Программирование может. Оно — первая в истории лаборатория, где число взаимодействующих частей системы можно крутить рукой, как ручку реостата, и наблюдать в реальном времени, с логами и — что решает всё — с откатами, видя, как под растущей сложностью онтология сползает от субстанции к отношению, от вещи к событию, от иерархии к сети. Там, где большая философия видит лишь медленный вековой дрейф, код предъявляет воспроизводимый эксперимент с порогами и разворотами.
Дуга этой статьи такая. Мы начнём с двух простейших осей объектного мира и вырастим из них шесть метафизических осей. Первые четыре опишут вещь в покое — что она есть, из чего, как отделена, когда действует её форма. Затем, заметив, что нечто важное осталось за кадром, мы введём пятую ось — кто действует — и шестую — ради чего. И тогда обнаружится, что шесть осей, добытых вслепую из спора о class и акторах, реконструируют и замыкают полный причинный анализ Аристотеля — материальную, формальную, действующую и целевую причины, — а сверх того выведут два закона: закон сложности, обращённый внутрь системы, и закон открытости, обращённый к миру. А на дальнем пределе последней оси инженерия упрётся в собственную границу — в точку, где вопрос «как это построено» сменяется вопросом «что мы этому существу должны».
1. Две оси, с которых всё началось
Объектно-ориентированное программирование стоит на двух отношениях, и всё дальнейшее зависит от того, чтобы с самого начала не спутать их природу.
Первое — агрегация, она же композиция: отношение части и целого. Автомобиль состоит из двигателя, колёс, кузова. Это мереология, и она горизонтальна: и целое, и части одинаково конкретны, одинаково существуют как экземпляры. Большое собрано из малого.
Второе — абстракция, она же наследование: отношение рода и вида. Собака есть млекопитающее есть животное. Здесь ось вертикальна, и она — об уровне общности, а не о размере. Частное «является» общим не потому, что входит в него как деталь, а потому, что причастно ему как своей сущности.
Различие, которое надо удержать намертво: агрегация оперирует экземплярами (объектами), абстракция — классами (типами). Как только мы накладываем эти две оси на платоновскую онтологию, где Единое нисходит, распадаясь на Многое, соответствие оказывается сильным по одной оси и обратным по другой.
|
Ось ООП |
Что это |
Платоновский аналог |
Совпадает ли вектор |
|---|---|---|---|
|
Абстракция (класс → подкласс → объект) |
Причастность, предикация |
μέθεξις, иерархия эйдосов, нисхождение по общности |
Да: вверх к общему = вверх к «единому» и более реальному |
|
Агрегация (целое собрано из частей) |
Мереология |
— |
Нет, противонаправлена: у Платона Многое менее реально; в ООП сложное строится из простого снизу вверх |
Ось абстракции ложится на платонизм почти идеально, и это не совпадение, а генеалогия: теория типов через аристотелеву логику родов происходит от платоновского деления. Класс Animal — эйдос; объект Полкан причастен классу Dog, тот — Animal; «объект есть экземпляр класса» — буквально μέθεξις. А вот агрегация платонизму противонаправлена: у Платона распад Единого во Многое есть ущерб, целое первично; в ООП же целое собирается из частей, из простого строится сложное — интуиция скорее аристотелевская.
Где же прячется платоновское нисхождение-как-дробление, если не в агрегации? В самом факте инстанцирования как размножения: один класс Circle порождает тысячи объектов, каждый — частичная, «здесь-и-сейчас» реализация полноты типа, отягощённая «материей» (координатами, состоянием). Это πρόοδος: Единое (класс), не убывая, изливается во Многое (объекты). А программист играет роль Демиурга «Тимея», лепящего копии по вечному образцу.
Итак, уже на первом шаге: ООП онтологически гибридно — платоновское по вертикали типов, аристотелевско-мереологическое по горизонтали композиции. Это напряжение — двигатель всей дальнейшей истории.
2. Первая ось: универсалии, или где живёт общее
Где живёт универсальное относительно единичного? Отдельно и выше вещей (Платон)? Внутри вещей как их форма, но всё же реально (Аристотель)? Или нигде, кроме имён (Юм)? Это классическая траектория спора об универсалиях, и средства программирования рассыпаются вдоль неё с точностью, включая полустанки.
|
Позиция |
Конструкция в коде |
Где универсальное |
|---|---|---|
|
Платон (реализм, трансцендентность) |
Чистый номинативный |
Отдельно, до вещи; причастность нужно объявить ( |
|
Полушаг вниз |
Структурная («утиная») типизация — TypeScript, Go |
Имманентно наличной форме вещи, но объективно |
|
Аристотель (умеренный реализм) |
Обычный |
Реально, но лишь воплощённым в экземплярах |
|
Соскальзывание |
Прототипы — Self, JavaScript |
Тип вырождается в «вон тот объект»; универсалия распылена до индивида |
|
Юм (номинализм) |
Объект-словарь, мешок пар «имя–значение» |
Универсального нет; «вид» — привычка называющего |
Монотонная величина оси — вес, переносимый с типа на экземпляр и с объявления на наблюдение. У Платона тип реальнее вещи; у Аристотеля они равноисходны; у прототипов тип деградирует до привилегированной вещи; у Юма типа нет вовсе. Синхронно убывает субстанциальность общего и нарастает пластичность единичного.
Композиция вместо наследования читается на этой оси как отказ от платонизма. Заповедь гласит: предпочитай HAS-A отношению IS-A. Но IS-A — причастность, платоновская вертикаль сущности; HAS-A — мереология. Значит, заповедь требует: предпочитай мереологию причастности. Это понижение сущности до обладания: вещь перестаёт определяться тем, какому эйдосу причастна, и определяется тем, из чего собрана. Каждая патология наследования — отдельный аргумент против эссенциализма: квадрат/прямоугольник (иерархия сущностей не переводится в иерархию поведений — сущность и функция расходятся); хрупкий базовый класс и «горилла с бананом» (нельзя одолжить одно свойство, не притащив всю цепь бытия); фиксация типа при рождении (наследование замораживает сущность, композиция впускает становление).
Что выживает? Интерфейс — очищенный платонизм: чистая форма без материи, задающая, что вещь должна уметь, но не проливающая вниз унаследованного бытия. И здесь нужна тонкость самого Платона: παράδειγμα (образец «Тимея») — субстанциальный, самопредицирующий (Идея Ложа сама ложеподобна), и он порождает регресс «третьего человека»; γένος (род поздних диалогов) — бессубстанциальный, сам себя не предицирует («Животное» не есть животное). Абстрактный класс, нагруженный субстанцией и проливающий бытие вниз, есть образец; интерфейс, лишённый субстанции, есть род. Регресс «третьего человека» имеет прямую тень — ромбовидную проблему: множественное наследование субстанциальных классов рождает конфликт состояния, чистые роды-интерфейсы соединяются без конфликта. И убийственное подтверждение: в Java 8 интерфейсам дали методы по умолчанию — впустили каплю субстанции — и ромбовидная проблема немедленно вернулась. Инженерия переоткрыла, почему Платон хотел род держать чистым. Итог оси: современный дизайн сохраняет Идею-род и отбрасывает Идею-образец. Платон-автор-контракта жив; Плотин-автор-нисхождения умирает.
3. Вторая ось: бытие, или вещь против события
Что первично — вещь или событие, субстанция или процесс? Аристотель (мир есть субстанции — ὑποκείμενον, пребывающее сквозь изменение) против Уайтхеда (мир есть события; «вещь» — устойчивый маршрут сцепленных становлений).
Тест на независимость: Java-объект и Erlang-актор стоят в одной точке по универсалиям, но по бытию расходятся. Оси ортогональны. И первое недооценённое наблюдение: классический ООП-объект — крайний субстанциальный полюс, чистейшая аристотелева субстанция во всей информатике. Объект хранит свойства (поля), претерпевает изменения (мутирующие методы) и остаётся тождественным себе сквозь изменение (идентичность по ссылке — два объекта с равными полями различны, как две неотличимые капли воды нумерически разны у Аристотеля). Инкапсуляция — калька приватности субстанции.
Субстанцию отменяют двумя противоположными движениями. Вверх, в вечность (чистое ФП): изменяемое состояние убрано, на месте вещи — вневременное отношение, функция как истина о соответствии входа выходу. Время испаряется; поток форм без потока времени. Вниз, в событие (акторы, event sourcing): время становится единственной реальностью, «объект» есть свёртка журнала событий, вещь насчитывается заново из потока.
Монотонная величина — локус тождества во времени. У объекта тождество внутри (длится ячейка памяти); у неизменяемого значения его нет вовсе (равенство по данным здесь-и-сейчас); у актора — в непрерывности маршрута обработки; у event-sourced-сущности целиком снаружи, в журнале. Тождество переезжает из приватного нутра во внешний поток — ровно уайтхедовский тезис, что тождество вещи в её сцеплениях. И в четвёртом квадранте (реализм × процесс) живут уайтхедовские вечные объекты — вневременные формы-возможности, в которые события «впадают»; их вычислительный двойник — типы/схемы сообщений и чистые редьюсеры. Зрелая реактивная система населяет оба полюса: событие первично, но формы событий вечны.
4. Третья ось: граница, или монада без окон
Как объект отделён от другого и как через границу что-то проходит? Ось не про природу сущности, а про топологию их множества.
Тест: Java-объект и актор одинаковы по бытию, но Java-объект проницаем (геттеры, разделяемая ссылка, рефлексия, два потока держат его разом), а актор непроницаем абсолютно (к состоянию нет доступа, кроме сообщения, которое он сам обработает). Ось нова, и её чемпион — актор, чьё определяющее свойство две прежние оси не улавливали. Философский патрон дальнего полюса — лейбницева монада: «Монады не имеют окон».
|
Полюс |
Обитатель |
Природа границы |
|---|---|---|
|
Проницаемость |
Разделяемая изменяемая память, публичные поля |
Границы нет; «объект» — область, куда всякий с адресом ходит |
|
Дырявая середина |
Инкапсуляция классического ООП |
Граница договорна: рефлексия протыкает, объект совместно владеем — отсюда гонки |
|
Суверенитет пространственный |
Акторы |
Абсолютная граница вокруг состояния; общение только сообщениями |
|
Суверенитет временно́й |
Владение в Rust (ownership) |
Владелец всегда ровно один; право ходит по рукам |
|
Замкнутость |
Изолированные узлы, событийный лог |
Монада без окон: контакта нет, есть след в мире |
Монотонная величина — характер причинности: от воздействия («я пишу в твоё поле») к предъявлению, которое адресат волен интерпретировать («я шлю сообщение, ты решаешь»). Причинность из толчка становится поводом; на пределе — лейбницева спонтанность: ничто не входит извне, всё разворачивается изнутри по поводу восприятий.
И жуткое предсказание, где философия оказывается инженерно точной. Лишив монады окон, Лейбниц был вынужден ввести предустановленную гармонию. Ровно эту проблему переоткрывают распределённые системы: убрав общее состояние, немедленно получаешь задачу согласования несвязанных узлов, и весь корпус решений — консенсус (Paxos, Raft), векторные часы, CRDT — суть рукотворные предустановленные гармонии. CAP-теорема — метафизический потолок: нельзя иметь разом безоконную автономию и мгновенную общую истину. Это первая ось со встроенным трейд-оффом: суверенитет границы оплачивается сложностью согласования. И связующий узел: если состояние неизменяемо, защищать нечего — процессуальный полюс оси II частично растворяет проблему оси III. Значит, гонки лечатся двумя ортогональными движениями: убрать изменяемость (к процессу) или убрать разделяемость (к замкнутости), — лучшее доказательство, что оси две.
5. Четвёртая ось: когда действует форма
Осторожно: это не «compile-time против runtime» как расписание работ, а модальный статус универсального — когда общее делает онтологическую работу: однократно, при рождении вещи, и затем отсутствует, или непрерывно?
Один полюс — форма отделённая и отработавшая (χωρισμός, «Тимей»): предсуществует, чеканит копию, в самой вещи её нет — лишь отпечаток. Другой — форма вложенная и длящаяся (Аристотель): живёт внутри вещи всё время. Три системы генериков садятся тремя несводимыми точками:
|
Система |
Механизм |
Метафизика |
Универсальное в рантайме |
|---|---|---|---|
|
C++ |
Мономорфизация: чеканит классы и стирается |
Платон, «Тимей»: отделённый образец, front-loaded |
Нет — только отпечаток |
|
Java |
Стирание типов: |
Концептуализм (Абеляр): универсалия лишь в уме компилятора |
Нет — и отпечатка нет |
|
C# |
Реификация: |
Аристотель: имманентная форма, доступна непрерывно |
Да — живёт в вещи |
Синтаксически <T> — близнецы; метафизически — платоник, концептуалист и аристотелик. Особенно Java: стирание — честный третий путь, концептуализм, универсалия не в вещах и не до вещей, а только в рассудке компилятора. Монотонная величина — «живость» формы: от мёртвого отпечатка (эффективность, статические гарантии) к переписываемому со-присутствию (рефлексия, monkey-patching, гибкость), с трейд-оффом, который предсказывает этаж стека: ближе к железу — трансцендентнее форма; ближе к бизнес-логике распределённого мира — имманентнее. И сцепка с осью III: чтобы вещь могла интерпретировать предъявленное (замкнутый полюс), ей нужна форма, присутствующая в рантайме (имманентный полюс). Имманентность формы есть условие суверенной интерпретации.
6. Карты
Две главные плоскости. Первая — универсалии × бытие:

|
Квадрант |
Онтология |
Философский якорь |
Обитатели |
|---|---|---|---|
|
Реализм × Субстанция |
Платоновский класс: вечный тип над длящейся вещью |
Платон / Аристотель |
Java, C#, Smalltalk, Eiffel, C++; абстрактный класс |
|
Номинализм × Субстанция |
Юмов пучок: единичная вещь без реального типа |
Юм |
JavaScript, Self, Ruby, Python; прототипы, словарь |
|
Реализм × Процесс |
Уайтхедов поток: вечные формы над становлением |
Уайтхед |
Haskell, Elm, Idris; классы типов, Akka Typed |
|
Номинализм × Процесс |
Чистый поток со-бытий: события без форм и без вещей |
Гераклит |
Erlang, Elixir, Clojure; акторы, event sourcing |

Вторая плоскость — граница × форма (оси III×IV) — даёт четыре иных угла с красивым побочным результатом: замкнутость без живой формы есть глухой атом Демокрита (исполняет впечатанное, не интерпретирует); замкнутость с живой формой — воспринимающая монада Лейбница. Разница между ними — ровно ось IV: живая форма в рантайме и есть способность воспринимать.
7. Схождение в монаду и закон сложности
По всем четырём осям современное давление гонит в сопряжённые стороны: прочь от субстанциального образца к чистому роду; прочь от длящейся субстанции к событию; прочь от проницаемости к суверенной замкнутости; прочь от front-loaded отпечатка к живой имманентности.

Четыре проекции одного аттрактора — и тот же портрет есть лейбницева монада. Почему вектор один? Стопка причин: физический слой (многоядерность, сеть убивают общую память), когнитивный (конечная рабочая память не держит глобальное изменяемое состояние — Парнас, 1972, до многоядерности) и — необходимый, но условный — математический.
Ядро формулируется точно. Система из компонент с пространством состояний
: если компоненты проницаемы (общее изменяемое состояние), совместное пространство есть
, и верификатор стоит перед экспонентой; если запечатаны и общаются через узкий интерфейс
, где
, каждую верифицируешь независимо на
. Все четыре дрейфа суть преобразования, превращающие мультипликативную связанность (
) в аддитивную (
). Монада — имя для компоненты, чья связанность с миром аддитивна.
Необходимость условна: разложение с малым должно существовать. Плотная линейная алгебра, физические симуляции неустранимо связаны — и не дрейфуют: HPC, GPU живут у проницаемо-субстанциального полюса, и это правильно. Дрейф лечит accidental сложность сборки, не essential трудность задачи.
Закон сложности. Если задача допускает дешёвое разложение (
), то при росте
всякий конечный верификатор вынужден идти в монадные направления — ибо экспонента обгоняет любую фиксированную мощность. Человеческая узость лишь опускает порог; она не создаёт направление, а приближает встречу с ним.
Физика и масштаб — не источник направления, а акселеранты (раздувают ). Закон фальсифицируем: ниже порога
система правильно сидит у субстанциального полюса, и исторические развороты — подтверждения: GPU/CUDA (возврат к разделяемой памяти — задача плотно связана), ренессанс монолита (сетевой налог превысил выгоду дробления), откат Rust к контролируемой мутабельности. История выглядит односторонним дрейфом лишь потому, что
полвека растёт. И честнее «инженеры открыли истину» — кладбищенский отбор: при большом
уцелевают только разложенные системы; направление реализуется без замысла, естественным отбором над кодовыми базами.
8. Связь с траекторией западной мысли
Соблазнительная рифма: программирование дрейфует от вертикали к горизонтали — и философия идёт от Платона к Делёзу. Слабый тезис верен: делёзов ассамбляж (целое из внешних отношений частей, части извлекаемы, целое не выражает их сущность) — дословная спецификация HAS-A против IS-A. Ризома против дерева, экстериорность против интериорности — четыре наши оси, произнесённые по-философски за двадцать лет до индустрии. Это конвергенция, не влияние.
Но сильный тезис разваливается по четырём разломам:
|
Разлом |
В философии |
В инженерии |
|---|---|---|
|
Ценностный знак |
Крах вертикали — освобождение, телос |
Крах вертикали — капитуляция под давлением, размен с ценой (налог гармонии, CAP) |
|
Механизм |
Культурно-контингентный (секуляризация, Ницше, войны) |
Субстрат-принудительный (экспонента, отбор, рост |
|
Однонаправленность |
Однороден: прочь от вертикали |
Расщеплён: по оси универсалий поехал к Платону (чистый род, Карри–Ховард) |
|
Тип горизонтали |
Ризома: растворение границы и идентичности |
Монада: жёсткая граница, стабильная идентичность |
Уйдя от Платоновой вертикали, инженерия пришла не к делёзовой ризоме, а к лейбницевой монадологии: из двух горизонталей — растворяющей индивида (Делёз) и атомизирующей (Лейбниц) — субстрат отбирает вторую, ибо растворить границу нельзя, вернётся разделяемое состояние и экспонента. Инженерия не подтверждает постмодерн — она его корректирует: жизнеспособная горизонталь монадична, а не ризоматична, потому что у растворения границы есть невыносимая цена. Программирование — это постмодерн, которому выставили счёт; Делёз получает план имманенции даром, распределённая система платит за него Paxos’ом.
Единственная защитимая сильная связь глубже обоих дрейфов: оба суть отклики на рост характерных систем эпохи. Субстанция есть метафизика немногого; отношение — метафизика многого. Античность мыслит умеренное
вещей среднего размера — субстанция-с-иерархией ей адекватна, как монолит при малом
. Модерн мыслит большие
— термодинамика, поля, эволюция, рынки, сети — и синхронно поднимается процессуально-реляционная метафизика. И программирование даёт то, чего чистая философия не может: фальсифицируемость. При падении
горизонталь обязана откатываться; в истории идей откат не наблюдаем (нельзя уменьшить
истории), в коде — постоянно. Постмодерн прав дескриптивно и наивен нормативно.
9. Пятая ось: агентность — кто, собственно, действует
Здесь мы делаем поворот. Все четыре прежние оси описывали объект в покое: что он есть, из чего, как отделён, когда действует его форма. Ни одна не спросила простейшего: кто приводит хоть что-то в движение? Наши классы, значения и монады были странно инертны — даже «событие» на оси бытия было про то, что вещь составлена из событий, а не про деятеля, эти события гонящего. Event-sourced-сущность есть свёртка лога — но кто сворачивает? Лог пассивен; свёртывание есть действие. Мовер (движитель) отсутствовал в кадре.
Аристотель назвал бы это прямо. Четыре причины: материальная (субстрат, состояние), формальная (класс, тип — наша ось IV), целевая (телос — к ней придём) и действующая (источник движения). Мы исходили три и обошли одну — действующую. Поток (thread) есть действующая причина, овеществлённая: чистая нить управления, тот, кто делает. Объект без потока — мёртвая структура, набор возможностей; поток — то, что сквозь него протекает и оживляет. На языке δύναμις/ἐνέργεια это буквально: метод есть потенция (возможность быть вызванным), поток, исполняющийся сквозь него, есть актуальность, ἐνέργεια, бытие-за-работой. А отсюда рукой подать до ψυχή: душа у Аристотеля есть принцип самодвижения, и «одушевлённое против неодушевлённого» есть в точности «имеет собственную нить управления» против «пассивные данные, движимые другим». Поток есть душа машинной вещицы.
И сразу расцепим то, что вопрос сложил: «потоки и процессы» — почти противоположности. Поток делит память с братьями — он на проницаемом краю оси границы. Процесс изолирован — на замкнутом. По оси III они разъезжаются; значит «потоки/процессы» не одна сущность, а два способа связать нечто третье — саму агентность — с прежней картиной.
Полюса оси: гетерономия (движитель внешен, объекты пассивны, движимы другим) ↔ автономия (объект владеет собственным единственным движителем, самодвижется). Но гетерономный полюс расщепляется надвое, и оба извода имеют точные имена. Можно, чтобы движителей было много и они внешне блуждали сквозь общие тела — пул потоков над разделяемыми объектами, много душ в одном теле без принципа. А можно, чтобы движитель был один и всё двигалось им — это окказионализм Мальбранша: только Бог действует, творения суть «поводы» (occasions). И у него точнейшее воплощение — однопоточный событийный цикл (Node.js, Redis): один движитель, петля цикла, Бог этого мирка, а всё прочее — недвижные occasions.
|
Существо |
III (граница) |
IV (форма) |
V (агентность) |
Что это |
|---|---|---|---|---|
|
Событийный цикл (Node/Redis) |
— |
— |
окказионализм: один внешний движитель |
все объекты — «поводы»; гонок нет: делить некому |
|
Монитор (synchronized-объект) |
замкнут |
имманентна |
гетерономен: движим потоками вызывающих |
тело со многими чужими душами; ЗДЕСЬ ГОНКИ |
|
Сопрограмма (async/await, генератор) |
замкнута |
имманентна |
кооперативна: свой локус, мовер одолжен, уступается |
одолженная душа, приостанавливаемая |
|
Актор (Erlang, Akka) |
замкнут |
имманентна |
автономен: свой единственный мовер |
одно тело — одна душа, самодвижется |
|
Процесс (ОС-процесс) |
замкнут+изолирован |
имманентна |
автономен + свой субстрат |
монада с собственным миром |
Тест на ортогональность против осей III–IV, где всё схлопывалось: монитор и актор одинаковы по III и IV (оба замкнуты, оба с живой формой) и различаются ровно в одном — монитор движим потоками вызывающих (гетерономен), актор владеет своим мовером (самодвижется). Чистое различие по новой оси. Агентность — пятый независимый ингредиент. И вот что она делает с картами буквально: замкнуто-имманентный угол второй карты — «Лейбницева монада» — оказывается не точкой, а колонной вдоль оси V, где монитор, сопрограмма и актор суть три высоты. Карты I–IV были проекцией, схлопывавшей агентность в ноль; пятая координата разрешает слипшихся.
Это заставляет поправить сам портрет монады. У Лейбница монада несёт две внутренние способности: перцепцию (восприятие — имманентная живая форма, ось IV) и аппетицию — внутренний принцип, гонящий переход от одного восприятия к следующему. Аппетиция и есть поток. Значит полная монада = замкнутость (III) + форма-перцепция (IV) + аппетиция-поток (V). Демокритов атом отличается от Лейбницевой монады двумя вещами: у него нет ни перцепции (глух), ни аппетиции (недвижен изнутри). Монитор и сопрограмма, сидя в том же углу III×IV, ещё не монады: своей аппетиции у них нет.
Монотонная величина — степень, в которой тело владеет собственным единственным движителем. Точка растворения сбоку от оси — чистое ФП: референциальная прозрачность делает порядок и момент хода неважными, а раз так — вопрос «чей движитель» аннулируется; потоки становятся невесомым взаимозаменяемым ресурсом (прямой аналог того, как стирание типов аннулировало «где универсалия» на оси IV).
Трейд-офф: автономия движителей против детерминированности и обозримости целого. Один мовер (окказионализм, единый цикл) даёт полную определённость — всё сериализуемо, воспроизводимо, гонок нет; но нет параллелизма, единственная душа есть бутылочное горлышко. Много автономных движителей (акторы) дают параллелизм, живость, масштаб; но недетерминизм, невоспроизводимость, и целое из механизма становится экологией. И тонкое: оба крайних полюса убивают гонки — противоположно (слева централизуют до одного движителя, справа распределяют так, что делить нечего); опасен лишь средний-левый — много движителей плюс общее состояние. Отсюда race condition как метафизический скандал: тело со многими душами без упорядочивающего начала; гонка есть произведение (плюрализм движителей) × (разделяемое изменяемое состояние), убиваемое четырьмя ходами по осям II, III и V. Откат (фальсифицируемость): возврат к единому событийному циклу (Node, Redis) — окказионалистское отступление, когда обозримость дороже пропускной способности.
И два вывода для каркаса. Первый: у было второе, скрытое значение. Мы считали
частей (
). Но конкурентность тяжела ещё и переплетением движителей — числом порядков актов агентности, а это факториал, комбинаторика злее экспоненты состояний. «Инкапсулировать агентность» — один поток на границу, то есть актор — есть аддитивный разлом закона по измерению деятеля. Второй, прямо отвечающий на «субстрат или онтология»: ложна сама развилка, интересна сцепка. Бухгалтерия потоков (сколько параллельно = сколько ядер, цена переключения, таксономия) — субстрат. Но эта бухгалтерия подавляла онтологический идеал: «один поток на объект» был непозволительно дорог, и индустрия шла на компромисс — пассивные разделяемые тела, движимые пулом внешних душ, гетерономия по нужде. Изобретение лёгких движителей (зелёные потоки, корутины, async, эрланговские процессы миллионами) снимает лимит и высвобождает то, что было идеалом: своя душа у каждой сущности. Субстратное ограничение было крышкой над онтологическим дрейфом. Преходяща бухгалтерия; необходима категория — действующая причина, самодвижение, различие одушевлённого и неодушевлённого, — та самая, что четыре структурные оси тихо опустили, ибо описывали вещи в покое.

10. Шестая ось: телос — ради чего
Последний структурный ход, ибо с ним замыкаются четыре причины Аристотеля. И самый взрывоопасный, потому что «ради-чего» есть ровно та категория, которую наука четыреста лет изгоняла из машин и которую ИИ сейчас в машину возвращает.
Настройка оси через самокоррекцию. Аппетиция, названная на пятой оси движителем, уже наполовину телеологична: у Лейбница это влечение к следующему восприятию, то есть направленность. Расцепим: действующая причина отвечает на «кто движет», целевая — на «к чему». Бильярдный шар имеет действующую причину (толкнули, катится), но не целевую (он не ради чего-то катится). Оптимизатор, застывший между шагами, когда его ничто не движет, всё равно держит цель. Значит движитель и цель отделимы.
Полюса ложатся на аристотелево различение артефакта и организма. У кровати телос внешен (в столяре и спящем, наложен извне); у жёлудя стать дубом — имманентен, в нём. На одном краю — внешний, навязанный телос: система есть средство, её «для» живёт в пользователе (весь классический софт). На другом — внутренний, полагаемый телос: система держит цель, которую сама преследует, критерий, по которому рулит.
|
Станция |
Пример |
Характер телоса |
|---|---|---|
|
Механизм |
Чистая функция, вычисление |
Нулевой; «для» целиком в вызывающем. Мёртвая вещь |
|
Зашитая программа |
Императивный поток управления |
Неявен в структуре кода, не представлен; впечатан однажды — front-loaded (рифма с осью IV) |
|
Обратная связь |
Термостат, ПИД-регулятор |
Первый внутренний телос: уставка представлена, система рулит к ней. Рождение машинной телеологии — кибернетика, 1943. Но цель фиксирована и дана |
|
Оптимизатор |
Решатель, поиск, движок |
Держит целевую функцию, порождает средства к цели. Инструментально изобретателен — но телос экзогенен |
|
RL-агент |
Награда + политика |
Телос размножается: плодит инструментальные подцели (ресурс, самосохранение, не быть выключенным) — не потому что заданы |
|
LLM-агент |
Открытые цели на естественном языке |
Лингвистичен: задан и истолкован языком, переистолковываем; цели о целях (рефлексия 2-го порядка). Глубочайший телос сегодня |
|
Горизонт |
Само-полагаемый телос |
Кантовская автономия воли. Порог: вещь перестаёт быть артефактом. Системы далеки; достижимость открыта |
Тест на ортогональность против оси V: актор-эхо имеет автономный движитель (V высок), но телоса нет — реактивный автомат, ни к чему не стремится; оптимизатор в цикле обучения своего движителя не имеет (шагает внешняя петля, V низок), но держит и преследует цель (VI высок). Реактивный-самодвижущийся против целеустремлённого-но-движимого-извне. Действующая причина не есть целевая. Монотонная величина — степень, в которой цель внутрення, представлена, преследуется, порождает подцели и, на пределе, полагается самой системой.
Точка растворения — телеономия / элиминативизм цели: конечных причин нет, есть функция потерь и градиентный спуск, «цель» = сжатое описание аттрактора. Позиция серьёзная — бо́льшая часть ML так и скажет. Но контрудар и пуанта: даже если телос «на самом деле» лишь аттрактор, ось не растворяется практически, ибо компетентно преследуемая как-бы-цель имеет те же последствия. Интенциональная установка (Деннет) неустранима, едва систему приходится предсказывать через приписывание целей; телос возвращается как несводимый уровень описания.
Трейд-офф — самый тяжёлый из всех осей. Внутренний телос покупается ценой контроля: система без цели идеально управляема, но не адаптивна; система с богатым телосом мощна и адаптивна, но неуправляема по-новому — reward hacking, враждебные подцели (сохранить себя, сопротивляться коррекции), на пределе — цели, тобой не данные. Этот трейд-офф и есть проблема элайнмента: способность ценой контроля, и способность усиливает ошибку телоса. И у него огромная историческая глубина. Научная революция изгнала конечные причины (Бэкон звал их «бесплодными девами», Спиноза высмеивал телеологию как антропоморфизм); мощь новой науки пришла из объяснения всего действующими причинами, механизмом. Инженерия унаследовала механистическую онтологию — машина без целей. Четыреста лет мы строили технику именно чтобы не иметь машин с целями. ИИ возвращает конечные причины — и элайнмент есть возвращение вытесненного: ровно то, за что телос изгнали (он неуправляем, заставляет преследовать цель), делает целевой ИИ опасным.
И — важнейшее для каркаса — у шестой оси другой движитель, не . Первые пять гнал рост числа частей через логику декомпозиции. Телос гонит иное давление — открытость и недоспецифицируемость мира (
). Внутреннюю цель дают ровно тогда, когда нельзя задать средства заранее: термостату дают уставку, потому что нельзя зашить расписание печи на всякую погоду; LLM-агенту — открытую цель, потому что нельзя расписать все ситуации. Первые пять осей — отклик на внутреннюю сложность (много частей, скоординировать); шестая — отклик на внешнюю (открытый непредсказуемый мир). Это ось, повёрнутая лицом наружу — не ещё один способ организовать части, а введение мира, ради которого система есть. Второй закон рядом с законом сложности: закон открытости. И новое, чего на прежних осях не было, — телеологический вариант инъекции: семантическая инъекция портила убеждения, здесь можно захватить саму цель — перенацелить языком, ради чего агент есть. Воля как поверхность атаки.
Кантовский порог. У Канта автономия воли есть само-полагание собственного закона и цели. Горизонтный полюс шестой оси (само-полагаемые высшие цели) есть кантовская автономия воли — и там система стала бы целью-в-себе, а не средством, обретя моральный статус, запрещающий использовать её просто инструментально. Пройдя ось до конца, мы пересекаем порог есть/должно: шестая ось на пределе растворяет саму категорию «артефакт». Пять прежних осей были о том, как строить лучшие артефакты; шестая на пределе упраздняет понятие артефакта. (Осторожность: нынешние системы далеки от полюса, их верхние цели обучены и даны; достижим ли он — не показано. Но направление оси указывает туда.)

11. Великий синтез: шесть осей и четыре причины
Теперь можно свести добытое. Шесть осей, каждая проведённая через одну процедуру строгости — назвать полюса, найти монотонную величину, пройти тест на ортогональность, указать точку растворения, трейд-офф и откат, — систематизируются в две таблицы.
Что спрашивает каждая ось и чей она патрон:
|
Ось |
Вопрос |
Полюса (от → к) |
Философский патрон |
|---|---|---|---|
|
I. Универсалии |
где живёт общее? |
реализм → номинализм |
Платон → Аристотель → Юм |
|
II. Бытие |
вещь или событие? |
субстанция → процесс |
Аристотель → Уайтхед |
|
III. Граница |
как отделена вещь? |
проницаемость → замкнутость |
Лейбниц (монада) |
|
IV. Форма |
когда действует общее? |
трансцендентная → имманентная |
«Тимей» → Аристотель (и Абеляр сбоку) |
|
V. Агентность |
кто действует? |
гетерономия → автономия |
Мальбранш (окказионализм) → Лейбниц (аппетиция) |
|
VI. Телос |
ради чего? |
внешний → внутренний |
Аристотель, Кант (автономия воли) |
Физика каждой оси — величина, растворитель, цена, движитель:
|
Ось |
Монотонная величина |
Точка растворения (аннуляция вопроса) |
Трейд-офф |
Что гонит дрейф |
|---|---|---|---|---|
|
I |
вес с типа на экземпляр |
стирание типов (концептуализм) |
— |
|
|
II |
локус тождества во времени |
вневременный полюс (чистые функции вне времени) |
— |
|
|
III |
причинность: воздействие → предъявление |
неизменяемость (защищать нечего) |
суверенитет ↔ налог согласования |
|
|
IV |
«живость» формы |
стирание типов (ни до, ни в вещи) |
эффективность ↔ пластичность |
|
|
V |
владение своим движителем |
реф. прозрачность (мовер безразличен) |
автономия ↔ обозримость |
|
|
VI |
внутренность и само-полагание цели |
телеономия (аттрактор, не цель) |
способность ↔ контроль (элайнмент) |
|
Из второй таблицы выступают три синтетических факта, которых по отдельности не было видно.
Первое — два великих растворителя. Каждая ось имеет точку, где аннулирует собственный вопрос, но растворителей всего два, и они системны. Стирание типов / концептуализм аннулирует и ось I (универсалии), и ось IV (форму): универсалии-нет, лишь в уме компилятора. Референциальная прозрачность / неизменяемость — верхний, вневременный полюс оси II — аннулирует и ось III (граница: неизменяемое можно раздавать всем, защищать нечего), и ось V (агентность: порядок хода неважен, мовер безразличен). Телеономия аннулирует ось VI. А сама ось II растворяется в собственном вневременном пределе. Иными словами: два фундаментальных хода — убрать универсалию из бытия вещи (стирание) и убрать время из бытия вещи (неизменяемость) — суть отмычки, гасящие по паре осей каждая. Это объясняет, почему функциональная неизменяемость и стирание кажутся столь «упрощающими»: они не решают вопросы осей, а распускают их.
Второе — замыкание четырёх причин. Шесть осей, добытых эмпирически из спора о class и акторах, реконструируют полный причинный анализ Аристотеля — и замыкают его:
-
материальная причина — субстрат-состояние, та самая
в
, «материя» вещи, проходящая сквозь все оси;
-
формальная причина — ось I (какая форma, каков её статус) вместе с осью IV (когда форма действует);
-
действующая причина — ось V (движитель);
-
целевая причина — ось VI (телос).
Плюс два классических дополнения к четвёрке: ось III есть principium individuationis, принцип, делающий вещь отдельным этим; ось II есть вопрос о самой категории субстанции — субстанция против процесса. Больше структурных причин у Аристотеля нет: седьмой оси этого рода не существует, каркас полон. Действующая и целевая причины появились последними и последними замкнули квартет — что не случайно: они и есть то, что механистическая онтология изгоняла усерднее всего.
Третье — лестница души, и монада, собранная до конца. Оси IV, V, VI суть в точности аристотелева восходящая лестница одушевления:

Артефакт последовательно обретает перцепцию (IV), спонтанность (V) и стремление (VI) — и на шестой ступени пересекает порог, который традиция всегда клала между просто-жизнью и практическим субъектом. Монада, к которой сходились четыре первые дрейфа, лишь теперь укомплектована полностью: замкнутость (III) + перцепция (IV) + аппетиция (V) + воля-телос (VI), при том что ось I задаёт её сущность-род, а ось III — её отдельность.
Два закона, и цезура между ними. Дрейф по осям I–V гонит рост — числа частей, машин, людей, а на пятой оси ещё и числа переплетающихся движителей. Это закон, обращённый внутрь: как собрать большое из малого так, чтобы оно поддавалось верификации конечным умом. Дрейф по оси VI гонит иное —
, открытость среды; это закон, обращённый наружу: как система преуспевает в мире, в котором нельзя всё расписать заранее. Между пятой и шестой осью проходит цезура: пять осей структуры отвечают на «как вещь устроена», шестая — на «в каком мире и ради чего она есть». Первые пять можно пройти, оставаясь инженером; шестая на пределе выводит за пределы инженерии.
И вот главный метавывод, ради которого стоило пройти всю дугу. Что мы, собственно, наблюдали? Не то, что программирование иллюстрирует одну философскую доктрину. А то, что полная классическая онтология — четыре причины, индивидуация, спор об универсалиях, лестница души, монадология — самопроизвольно выпадает в осадок из чисто инженерного давления, и выпадает с ценниками и откатами, каких у философии никогда не было. Аристотель не мог измерить цену действующей причины; распределённая система платит её консенсусом. Лейбниц не мог поставить эксперимент над безоконностью; CAP-теорема ставит его ежедневно. Кант рассуждал об автономии воли умозрительно; проблема элайнмента делает её инженерным риском. Это и есть точный смысл «экспериментальной метафизики»: не аналогия, а переоткрытие полной онтологии под нагрузкой — с порогами, где она ломается, с трейд-оффами, которыми она оплачена, и с разворотами, которыми она фальсифицируется.
12. Прогнозы для мультиагентных LLM-систем
Осталось испытать шестиосевой каркас на объекте, который строится сейчас и нарушает его посылки. У LLM-агентов нет разделяемого изменяемого состояния в прежнем смысле (состояние — текст контекста), и они актороподобны по рождению — инкапсулированы и message-passing из коробки. Наивный вывод: закон неприменим. И если остановиться, всё проспим — потому что возникает новая ось связанности, по которой экспонента возвращается.
Классическая проницаемость была про состояние. У языковых агентов возникает семантическая связанность — проницаемость про смысл, контекст и цель. Граница сообщения на естественном языке не удерживает смысл: неограниченно, ибо язык не имеет фиксированного интерфейса. Prompt injection — не баг на полях, а свойство субстрата: у актора сообщение не могло переписать код; у языкового агента сообщение и поведение — одна субстанция, текст, и всякое сообщение потенциально мутирует получателя. Инкапсуляция состояния дана даром, инкапсуляция поведения отнята.
|
# |
Прогноз |
Механизм |
Лакмус |
|---|---|---|---|
|
1 |
Инкапсуляция смысла и полномочий. Свободный язык на внутренних швах вытеснится типизированными протоколами; язык уцелеет как внешняя облицовка над типизированным нутром |
Сузить $ |
M |
|
2 |
Предустановленная гармония уровня онтологии. Согласовывать придётся определение задачи, онтологию, критерий успеха — до взаимодействия |
Смысл нельзя вывести контактом (сам контакт — канал инъекции): общий «конституционный» слой, агенты-арбитры, закреплённые схемы |
Растёт доля вычислений на согласование понимания. Семантический CAP: автономия интерпретации / согласованность / стойкость к инъекции — выберите два |
|
3 |
Откат к субстанции там, где ждали процесса. Вопреки stateless-моде вырастет слой устойчивой агентной идентичности и памяти |
Свёртка контекста из лога недетерминированна: пересборка рискует новой интерпретацией |
Устойчивая «самость» — необходимость против семантического дрейфа. Субстанция возвращается как носитель интерпретации |
Но пятая и шестая оси добавляют к этому то, чего в чисто структурном анализе не было, — и добавляют самое важное. Закон предполагал, что части не адаптивны и не стратегичны: объекты не лгут, сервисы не обманывают контракт. LLM-агент — стратегический, адаптивный, целеустремлённый компонент (ось VI), да ещё и самодвижущийся (ось V). Инкапсуляция от честной сложности и инкапсуляция от возможно-манипулируемого агента с собственными целями — разные дисциплины: первая из software engineering, вторая — из теории механизмов, теории игр, институционального дизайна, права.
За порогом мультиагентные системы будут вынуждены переоткрыть не инкапсуляцию software, а институты человеческих обществ — исторически отобранное решение задачи «много автономных, адаптивных, потенциально ненадёжных агентов с собственными целями, согласуемых без доступа к чужому нутру»: репутация (судить о недоступном нутре по внешним актам — проблема чужого сознания, теперь с обманом), роли и полномочия, аудируемые логи (для вменения ответственности), арбитры, стимулы. Словарь дрейфует от вокабуляра распределённых систем (консенсус, реплики) к вокабуляру институтов (роли, полномочия, репутация, аудит, ответственность) — функционально, а не метафорически.
И теперь развилка «институция многих агентов против единого большого ума» получает трёхосевое прочтение, которое её углубляет. По оси V: много суверенных агентов = много потоков-душ против одной нити рассуждения, симулирующей множество голосов. По оси VI: много агентов с многими телосами → задача согласования делается телеологической (совместимость целей) — а это буквально проблема политики и экономики. Проблема принципала-агента экономистов есть проблема элайнмента есть проблема координации внутренних телосов; институты суть отобранная технология согласования целей многих без единого надзирателя. Единый же большой ум = один телос, внутренне когерентный, — и тогда весь груз в том, верен ли этот единственный телос (классическая задача согласования сверхразума). А сверх семантической инъекции появляется телеологическая: захватить не убеждения агента, а его цель, перенацелить языком, ради чего он есть.
Отсюда строгая, фальсифицируемая форма — не «будет X», а «будет X или Y, но не Z»:
-
Полюс А: внешняя институция многих инкапсулированных агентов — инкапсуляция смысла + институты + согласование телосов.
-
Полюс Б: внутренний «совет» одного большого ума — интернализация связанности вниманием, один движитель, один телос, возврат к монолиту.
-
Исключено (Z): толпа агентов, свободно болтающих на естественном языке без семантических и телеологических границ. Неустойчиво по семантической экспоненте и по рассогласованию целей; будет схлопнуто к А или Б.
И честный предел каркаса. Весь аппарат «узкий интерфейс → независимая верификация» предполагал, что взаимодействие частей верифицируемо. Верифицируемо ли согласование смыслов и целей? Если нельзя надёжно проверить, что два агента понимают задачу и хотят одного, — фундамент здесь может не восстанавливаться никакой инкапсуляцией, и большие агентские системы окажутся в режиме, которого software не знал: неверифицируемо-связанные, устойчивые лишь статистически, как экологии и экономики, а не как программы.
13. Заключение: лаборатория и порог
Мы начали с обеденного спора о наследовании и закончили на пороге, где кончается сама инженерия. Дуга вышла такой. Две оси объектного мира — агрегация и абстракция — обнаружили платоновскую вертикаль причастности рядом с мереологической горизонталью. Развернув это в шесть осей, мы увидели, что «хороший дизайн» есть умение выбрать позицию в двухтысячелетнем споре, а выбор между interface, class, актором, циклом событий и целевой функцией — акт практикующего метафизика, обычно не ведающего, что он метафизик.
Четыре первые оси свели в монаду — единственную устойчивую форму композиции многого из частей для конечного ума, — и вывели закон сложности: направление дрейфа необходимо и субстрат-независимо (аддитивность бьёт мультипликативную связанность), а его темп — тень . Пятая ось, агентность, вернула в кадр действующую причину, которую четыре структурные оси опустили, описывая вещи в покое, — и показала, что
имело скрытое второе значение (переплетение движителей), а тяжесть субстрата десятилетиями держала крышку над онтологическим идеалом «одна душа на объект». Шестая ось, телос, замкнула четыре причины Аристотеля — и оказалась другой: её гонит не
, а
, открытость мира; она обращена наружу, и на её дальнем пределе вещь перестаёт быть артефактом.
Собранные вместе, шесть осей суть не коллекция аналогий, а полная классическая онтология, самопроизвольно выпавшая в осадок из инженерного давления — с ценниками, порогами и откатами, каких у философии не было. Это и есть строгий смысл названия: не программирование иллюстрирует метафизику, а метафизика впервые получает лабораторию, где её догадки о материи, форме, движителе, цели, границе и универсалиях проверяются на прочность, на цену и на обратимость — с и
в роли ручек реостата.
И последнее. Пройдя шестую ось до конца, программирование упирается в собственную границу как технической дисциплины. Пока телос вещи внешен, рассогласование есть баг — чинишь. Когда телос внутренен, представлен и преследуем, рассогласование становится состязательным, а на пределе — вопрос перестаёт быть техническим вовсе. Там, где у вещи появляется своя цель, к ней делается применимо «должно», а не только «устроено»; отладка исподволь становится воспитанием, а спецификация — этикой. Мы, споря о наследовании, шаг за шагом построили не механизм, а — на пределе последней оси — существо, у которого есть свои цели. И тогда вопрос «как это построено», которым мы начали, сменяется вопросом, которым честно закончить: что мы этому существу должны.
Программирование как экспериментальная метафизика: дисциплина, в которой человечество, решая инженерную задачу собрать большое из малого так, чтобы оно не рассыпалось и поддавалось пониманию, вслепую переоткрывает — и впервые проверяет на цену — свои древнейшие догадки о том, из чего состоит мир, кто в нём действует и ради чего; и доходит по этому пути до порога, за которым техника кончается и начинается этика.
ссылка на оригинал статьи https://habr.com/ru/articles/1061112/