Программирование как экспериментальная метафизика. искусственный интеллект.. искусственный интеллект. метафизика.. искусственный интеллект. метафизика. ооп.. искусственный интеллект. метафизика. ооп. Программирование.. искусственный интеллект. метафизика. ооп. Программирование. Распределённые системы.. искусственный интеллект. метафизика. ооп. Программирование. Распределённые системы. философия.. искусственный интеллект. метафизика. ооп. Программирование. Распределённые системы. философия. философия программирования.

Шесть осей, четыре причины, два закона и порог, за которым инженерия кончается

Философия всегда была умозрительной: Платон не мог поставить эксперимент над тем, отделены ли Идеи от вещей. Программирование может. Оно — первая в истории лаборатория, где число взаимодействующих частей системы можно крутить рукой, как ручку реостата, и наблюдать в реальном времени, с логами и — что решает всё — с откатами, видя, как под растущей сложностью онтология сползает от субстанции к отношению, от вещи к событию, от иерархии к сети. Там, где большая философия видит лишь медленный вековой дрейф, код предъявляет воспроизводимый эксперимент с порогами и разворотами.

Дуга этой статьи такая. Мы начнём с двух простейших осей объектного мира и вырастим из них шесть метафизических осей. Первые четыре опишут вещь в покое — что она есть, из чего, как отделена, когда действует её форма. Затем, заметив, что нечто важное осталось за кадром, мы введём пятую ось — кто действует — и шестую — ради чего. И тогда обнаружится, что шесть осей, добытых вслепую из спора о class и акторах, реконструируют и замыкают полный причинный анализ Аристотеля — материальную, формальную, действующую и целевую причины, — а сверх того выведут два закона: закон сложности, обращённый внутрь системы, и закон открытости, обращённый к миру. А на дальнем пределе последней оси инженерия упрётся в собственную границу — в точку, где вопрос «как это построено» сменяется вопросом «что мы этому существу должны».


1. Две оси, с которых всё началось

Объектно-ориентированное программирование стоит на двух отношениях, и всё дальнейшее зависит от того, чтобы с самого начала не спутать их природу.

Первое — агрегация, она же композиция: отношение части и целого. Автомобиль состоит из двигателя, колёс, кузова. Это мереология, и она горизонтальна: и целое, и части одинаково конкретны, одинаково существуют как экземпляры. Большое собрано из малого.

Второе — абстракция, она же наследование: отношение рода и вида. Собака есть млекопитающее есть животное. Здесь ось вертикальна, и она — об уровне общности, а не о размере. Частное «является» общим не потому, что входит в него как деталь, а потому, что причастно ему как своей сущности.

Различие, которое надо удержать намертво: агрегация оперирует экземплярами (объектами), абстракция — классами (типами). Как только мы накладываем эти две оси на платоновскую онтологию, где Единое нисходит, распадаясь на Многое, соответствие оказывается сильным по одной оси и обратным по другой.

Ось ООП

Что это

Платоновский аналог

Совпадает ли вектор

Абстракция (класс → подкласс → объект)

Причастность, предикация

μέθεξις, иерархия эйдосов, нисхождение по общности

Да: вверх к общему = вверх к «единому» и более реальному

Агрегация (целое собрано из частей)

Мереология

Нет, противонаправлена: у Платона Многое менее реально; в ООП сложное строится из простого снизу вверх

Ось абстракции ложится на платонизм почти идеально, и это не совпадение, а генеалогия: теория типов через аристотелеву логику родов происходит от платоновского деления. Класс Animal — эйдос; объект Полкан причастен классу Dog, тот — Animal; «объект есть экземпляр класса» — буквально μέθεξις. А вот агрегация платонизму противонаправлена: у Платона распад Единого во Многое есть ущерб, целое первично; в ООП же целое собирается из частей, из простого строится сложное — интуиция скорее аристотелевская.

Где же прячется платоновское нисхождение-как-дробление, если не в агрегации? В самом факте инстанцирования как размножения: один класс Circle порождает тысячи объектов, каждый — частичная, «здесь-и-сейчас» реализация полноты типа, отягощённая «материей» (координатами, состоянием). Это πρόοδος: Единое (класс), не убывая, изливается во Многое (объекты). А программист играет роль Демиурга «Тимея», лепящего копии по вечному образцу.

Итак, уже на первом шаге: ООП онтологически гибридно — платоновское по вертикали типов, аристотелевско-мереологическое по горизонтали композиции. Это напряжение — двигатель всей дальнейшей истории.

2. Первая ось: универсалии, или где живёт общее

Где живёт универсальное относительно единичного? Отдельно и выше вещей (Платон)? Внутри вещей как их форма, но всё же реально (Аристотель)? Или нигде, кроме имён (Юм)? Это классическая траектория спора об универсалиях, и средства программирования рассыпаются вдоль неё с точностью, включая полустанки.

Позиция

Конструкция в коде

Где универсальное

Платон (реализм, трансцендентность)

Чистый номинативный interface

Отдельно, до вещи; причастность нужно объявить (implements)

Полушаг вниз

Структурная («утиная») типизация — TypeScript, Go

Имманентно наличной форме вещи, но объективно

Аристотель (умеренный реализм)

Обычный class: форма (определение) + материя (состояние)

Реально, но лишь воплощённым в экземплярах

Соскальзывание

Прототипы — 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

Стирание типов: <T> — фикция проверки

Концептуализм (Абеляр): универсалия лишь в уме компилятора

Нет — и отпечатка нет

C#

Реификация: typeof(T) живёт в рантайме

Аристотель: имманентная форма, доступна непрерывно

Да — живёт в вещи

Синтаксически <T> — близнецы; метафизически — платоник, концептуалист и аристотелик. Особенно Java: стирание — честный третий путь, концептуализм, универсалия не в вещах и не до вещей, а только в рассудке компилятора. Монотонная величина — «живость» формы: от мёртвого отпечатка (эффективность, статические гарантии) к переписываемому со-присутствию (рефлексия, monkey-patching, гибкость), с трейд-оффом, который предсказывает этаж стека: ближе к железу — трансцендентнее форма; ближе к бизнес-логике распределённого мира — имманентнее. И сцепка с осью III: чтобы вещь могла интерпретировать предъявленное (замкнутый полюс), ей нужна форма, присутствующая в рантайме (имманентный полюс). Имманентность формы есть условие суверенной интерпретации.

6. Карты

Две главные плоскости. Первая — универсалии × бытие:

Программирование как экспериментальная метафизика - 1

Квадрант

Онтология

Философский якорь

Обитатели

Реализм × Субстанция

Платоновский класс: вечный тип над длящейся вещью

Платон / Аристотель

Java, C#, Smalltalk, Eiffel, C++; абстрактный класс

Номинализм × Субстанция

Юмов пучок: единичная вещь без реального типа

Юм

JavaScript, Self, Ruby, Python; прототипы, словарь

Реализм × Процесс

Уайтхедов поток: вечные формы над становлением

Уайтхед

Haskell, Elm, Idris; классы типов, Akka Typed

Номинализм × Процесс

Чистый поток со-бытий: события без форм и без вещей

Гераклит

Erlang, Elixir, Clojure; акторы, event sourcing

Программирование как экспериментальная метафизика - 2

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

7. Схождение в монаду и закон сложности

По всем четырём осям современное давление гонит в сопряжённые стороны: прочь от субстанциального образца к чистому роду; прочь от длящейся субстанции к событию; прочь от проницаемости к суверенной замкнутости; прочь от front-loaded отпечатка к живой имманентности.

Программирование как экспериментальная метафизика - 3

Четыре проекции одного аттрактора — и тот же портрет есть лейбницева монада. Почему вектор один? Стопка причин: физический слой (многоядерность, сеть убивают общую память), когнитивный (конечная рабочая память не держит глобальное изменяемое состояние — Парнас, 1972, до многоядерности) и — необходимый, но условный — математический.

Ядро формулируется точно. Система из N компонент с пространством состояний S: если компоненты проницаемы (общее изменяемое состояние), совместное пространство есть S^N, и верификатор стоит перед экспонентой; если запечатаны и общаются через узкий интерфейс M, где |M| ll |S|, каждую верифицируешь независимо на S times M. Все четыре дрейфа суть преобразования, превращающие мультипликативную связанность (S^N) в аддитивную (N cdot S{times}M). Монада — имя для компоненты, чья связанность с миром аддитивна.

Необходимость условна: разложение с малым |M| должно существовать. Плотная линейная алгебра, физические симуляции неустранимо связаны — и не дрейфуют: HPC, GPU живут у проницаемо-субстанциального полюса, и это правильно. Дрейф лечит accidental сложность сборки, не essential трудность задачи.

Закон сложности. Если задача допускает дешёвое разложение (|M| ll |S|), то при росте N всякий конечный верификатор вынужден идти в монадные направления — ибо экспонента обгоняет любую фиксированную мощность. Человеческая узость лишь опускает порог; она не создаёт направление, а приближает встречу с ним.

Физика и масштаб — не источник направления, а акселеранты (раздувают N). Закон фальсифицируем: ниже порога N^* система правильно сидит у субстанциального полюса, и исторические развороты — подтверждения: GPU/CUDA (возврат к разделяемой памяти — задача плотно связана), ренессанс монолита (сетевой налог превысил выгоду дробления), откат Rust к контролируемой мутабельности. История выглядит односторонним дрейфом лишь потому, что N полвека растёт. И честнее «инженеры открыли истину» — кладбищенский отбор: при большом N уцелевают только разложенные системы; направление реализуется без замысла, естественным отбором над кодовыми базами.

8. Связь с траекторией западной мысли

Соблазнительная рифма: программирование дрейфует от вертикали к горизонтали — и философия идёт от Платона к Делёзу. Слабый тезис верен: делёзов ассамбляж (целое из внешних отношений частей, части извлекаемы, целое не выражает их сущность) — дословная спецификация HAS-A против IS-A. Ризома против дерева, экстериорность против интериорности — четыре наши оси, произнесённые по-философски за двадцать лет до индустрии. Это конвергенция, не влияние.

Но сильный тезис разваливается по четырём разломам:

Разлом

В философии

В инженерии

Ценностный знак

Крах вертикали — освобождение, телос

Крах вертикали — капитуляция под давлением, размен с ценой (налог гармонии, CAP)

Механизм

Культурно-контингентный (секуляризация, Ницше, войны)

Субстрат-принудительный (экспонента, отбор, рост N)

Однонаправленность

Однороден: прочь от вертикали

Расщеплён: по оси универсалий поехал к Платону (чистый род, Карри–Ховард)

Тип горизонтали

Ризома: растворение границы и идентичности

Монада: жёсткая граница, стабильная идентичность

Уйдя от Платоновой вертикали, инженерия пришла не к делёзовой ризоме, а к лейбницевой монадологии: из двух горизонталей — растворяющей индивида (Делёз) и атомизирующей (Лейбниц) — субстрат отбирает вторую, ибо растворить границу нельзя, вернётся разделяемое состояние и экспонента. Инженерия не подтверждает постмодерн — она его корректирует: жизнеспособная горизонталь монадична, а не ризоматична, потому что у растворения границы есть невыносимая цена. Программирование — это постмодерн, которому выставили счёт; Делёз получает план имманенции даром, распределённая система платит за него Paxos’ом.

Единственная защитимая сильная связь глубже обоих дрейфов: оба суть отклики на рост N характерных систем эпохи. Субстанция есть метафизика немногого; отношение — метафизика многого. Античность мыслит умеренное N вещей среднего размера — субстанция-с-иерархией ей адекватна, как монолит при малом N. Модерн мыслит большие N — термодинамика, поля, эволюция, рынки, сети — и синхронно поднимается процессуально-реляционная метафизика. И программирование даёт то, чего чистая философия не может: фальсифицируемость. При падении N горизонталь обязана откатываться; в истории идей откат не наблюдаем (нельзя уменьшить N истории), в коде — постоянно. Постмодерн прав дескриптивно и наивен нормативно.

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) — окказионалистское отступление, когда обозримость дороже пропускной способности.

И два вывода для каркаса. Первый: у N было второе, скрытое значение. Мы считали N частей (S^N). Но конкурентность тяжела ещё и переплетением движителей — числом порядков актов агентности, а это факториал, комбинаторика злее экспоненты состояний. «Инкапсулировать агентность» — один поток на границу, то есть актор — есть аддитивный разлом закона по измерению деятеля. Второй, прямо отвечающий на «субстрат или онтология»: ложна сама развилка, интересна сцепка. Бухгалтерия потоков (сколько параллельно = сколько ядер, цена переключения, таксономия) — субстрат. Но эта бухгалтерия подавляла онтологический идеал: «один поток на объект» был непозволительно дорог, и индустрия шла на компромисс — пассивные разделяемые тела, движимые пулом внешних душ, гетерономия по нужде. Изобретение лёгких движителей (зелёные потоки, корутины, async, эрланговские процессы миллионами) снимает лимит и высвобождает то, что было идеалом: своя душа у каждой сущности. Субстратное ограничение было крышкой над онтологическим дрейфом. Преходяща бухгалтерия; необходима категория — действующая причина, самодвижение, различие одушевлённого и неодушевлённого, — та самая, что четыре структурные оси тихо опустили, ибо описывали вещи в покое.

Программирование как экспериментальная метафизика - 29

10. Шестая ось: телос — ради чего

Последний структурный ход, ибо с ним замыкаются четыре причины Аристотеля. И самый взрывоопасный, потому что «ради-чего» есть ровно та категория, которую наука четыреста лет изгоняла из машин и которую ИИ сейчас в машину возвращает.

Настройка оси через самокоррекцию. Аппетиция, названная на пятой оси движителем, уже наполовину телеологична: у Лейбница это влечение к следующему восприятию, то есть направленность. Расцепим: действующая причина отвечает на «кто движет», целевая — на «к чему». Бильярдный шар имеет действующую причину (толкнули, катится), но не целевую (он не ради чего-то катится). Оптимизатор, застывший между шагами, когда его ничто не движет, всё равно держит цель. Значит движитель и цель отделимы.

Полюса ложатся на аристотелево различение артефакта и организма. У кровати телос внешен (в столяре и спящем, наложен извне); у жёлудя стать дубом — имманентен, в нём. На одном краю — внешний, навязанный телос: система есть средство, её «для» живёт в пользователе (весь классический софт). На другом — внутренний, полагаемый телос: система держит цель, которую сама преследует, критерий, по которому рулит.

Станция

Пример

Характер телоса

Механизм

Чистая функция, вычисление

Нулевой; «для» целиком в вызывающем. Мёртвая вещь

Зашитая программа

Императивный поток управления

Неявен в структуре кода, не представлен; впечатан однажды — front-loaded (рифма с осью IV)

Обратная связь

Термостат, ПИД-регулятор

Первый внутренний телос: уставка представлена, система рулит к ней. Рождение машинной телеологии — кибернетика, 1943. Но цель фиксирована и дана

Оптимизатор

Решатель, поиск, движок

Держит целевую функцию, порождает средства к цели. Инструментально изобретателен — но телос экзогенен

RL-агент

Награда + политика

Телос размножается: плодит инструментальные подцели (ресурс, самосохранение, не быть выключенным) — не потому что заданы

LLM-агент

Открытые цели на естественном языке

Лингвистичен: задан и истолкован языком, переистолковываем; цели о целях (рефлексия 2-го порядка). Глубочайший телос сегодня

Горизонт

Само-полагаемый телос

Кантовская автономия воли. Порог: вещь перестаёт быть артефактом. Системы далеки; достижимость открыта

Тест на ортогональность против оси V: актор-эхо имеет автономный движитель (V высок), но телоса нет — реактивный автомат, ни к чему не стремится; оптимизатор в цикле обучения своего движителя не имеет (шагает внешняя петля, V низок), но держит и преследует цель (VI высок). Реактивный-самодвижущийся против целеустремлённого-но-движимого-извне. Действующая причина не есть целевая. Монотонная величина — степень, в которой цель внутрення, представлена, преследуется, порождает подцели и, на пределе, полагается самой системой.

Точка растворениятелеономия / элиминативизм цели: конечных причин нет, есть функция потерь и градиентный спуск, «цель» = сжатое описание аттрактора. Позиция серьёзная — бо́льшая часть ML так и скажет. Но контрудар и пуанта: даже если телос «на самом деле» лишь аттрактор, ось не растворяется практически, ибо компетентно преследуемая как-бы-цель имеет те же последствия. Интенциональная установка (Деннет) неустранима, едва систему приходится предсказывать через приписывание целей; телос возвращается как несводимый уровень описания.

Трейд-офф — самый тяжёлый из всех осей. Внутренний телос покупается ценой контроля: система без цели идеально управляема, но не адаптивна; система с богатым телосом мощна и адаптивна, но неуправляема по-новому — reward hacking, враждебные подцели (сохранить себя, сопротивляться коррекции), на пределе — цели, тобой не данные. Этот трейд-офф и есть проблема элайнмента: способность ценой контроля, и способность усиливает ошибку телоса. И у него огромная историческая глубина. Научная революция изгнала конечные причины (Бэкон звал их «бесплодными девами», Спиноза высмеивал телеологию как антропоморфизм); мощь новой науки пришла из объяснения всего действующими причинами, механизмом. Инженерия унаследовала механистическую онтологию — машина без целей. Четыреста лет мы строили технику именно чтобы не иметь машин с целями. ИИ возвращает конечные причины — и элайнмент есть возвращение вытесненного: ровно то, за что телос изгнали (он неуправляем, заставляет преследовать цель), делает целевой ИИ опасным.

И — важнейшее для каркаса — у шестой оси другой движитель, не N. Первые пять гнал рост числа частей через логику декомпозиции. Телос гонит иное давление — открытость и недоспецифицируемость мира (E). Внутреннюю цель дают ровно тогда, когда нельзя задать средства заранее: термостату дают уставку, потому что нельзя зашить расписание печи на всякую погоду; LLM-агенту — открытую цель, потому что нельзя расписать все ситуации. Первые пять осей — отклик на внутреннюю сложность (много частей, скоординировать); шестая — отклик на внешнюю (открытый непредсказуемый мир). Это ось, повёрнутая лицом наружу — не ещё один способ организовать части, а введение мира, ради которого система есть. Второй закон рядом с законом сложности: закон открытости. И новое, чего на прежних осях не было, — телеологический вариант инъекции: семантическая инъекция портила убеждения, здесь можно захватить саму цель — перенацелить языком, ради чего агент есть. Воля как поверхность атаки.

Кантовский порог. У Канта автономия воли есть само-полагание собственного закона и цели. Горизонтный полюс шестой оси (само-полагаемые высшие цели) есть кантовская автономия воли — и там система стала бы целью-в-себе, а не средством, обретя моральный статус, запрещающий использовать её просто инструментально. Пройдя ось до конца, мы пересекаем порог есть/должно: шестая ось на пределе растворяет саму категорию «артефакт». Пять прежних осей были о том, как строить лучшие артефакты; шестая на пределе упраздняет понятие артефакта. (Осторожность: нынешние системы далеки от полюса, их верхние цели обучены и даны; достижим ли он — не показано. Но направление оси указывает туда.)

Программирование как экспериментальная метафизика - 32

11. Великий синтез: шесть осей и четыре причины

Теперь можно свести добытое. Шесть осей, каждая проведённая через одну процедуру строгости — назвать полюса, найти монотонную величину, пройти тест на ортогональность, указать точку растворения, трейд-офф и откат, — систематизируются в две таблицы.

Что спрашивает каждая ось и чей она патрон:

Ось

Вопрос

Полюса (от → к)

Философский патрон

I. Универсалии

где живёт общее?

реализм → номинализм

Платон → Аристотель → Юм

II. Бытие

вещь или событие?

субстанция → процесс

Аристотель → Уайтхед

III. Граница

как отделена вещь?

проницаемость → замкнутость

Лейбниц (монада)

IV. Форма

когда действует общее?

трансцендентная → имманентная

«Тимей» → Аристотель (и Абеляр сбоку)

V. Агентность

кто действует?

гетерономия → автономия

Мальбранш (окказионализм) → Лейбниц (аппетиция)

VI. Телос

ради чего?

внешний → внутренний

Аристотель, Кант (автономия воли)

Физика каждой оси — величина, растворитель, цена, движитель:

Ось

Монотонная величина

Точка растворения (аннуляция вопроса)

Трейд-офф

Что гонит дрейф

I

вес с типа на экземпляр

стирание типов (концептуализм)

N

II

локус тождества во времени

вневременный полюс (чистые функции вне времени)

N

III

причинность: воздействие → предъявление

неизменяемость (защищать нечего)

суверенитет ↔ налог согласования

N

IV

«живость» формы

стирание типов (ни до, ни в вещи)

эффективность ↔ пластичность

N

V

владение своим движителем

реф. прозрачность (мовер безразличен)

автономия ↔ обозримость

N (агентное)

VI

внутренность и само-полагание цели

телеономия (аттрактор, не цель)

способность ↔ контроль (элайнмент)

E

Из второй таблицы выступают три синтетических факта, которых по отдельности не было видно.

Первое — два великих растворителя. Каждая ось имеет точку, где аннулирует собственный вопрос, но растворителей всего два, и они системны. Стирание типов / концептуализм аннулирует и ось I (универсалии), и ось IV (форму): универсалии-нет, лишь в уме компилятора. Референциальная прозрачность / неизменяемость — верхний, вневременный полюс оси II — аннулирует и ось III (граница: неизменяемое можно раздавать всем, защищать нечего), и ось V (агентность: порядок хода неважен, мовер безразличен). Телеономия аннулирует ось VI. А сама ось II растворяется в собственном вневременном пределе. Иными словами: два фундаментальных хода — убрать универсалию из бытия вещи (стирание) и убрать время из бытия вещи (неизменяемость) — суть отмычки, гасящие по паре осей каждая. Это объясняет, почему функциональная неизменяемость и стирание кажутся столь «упрощающими»: они не решают вопросы осей, а распускают их.

Второе — замыкание четырёх причин. Шесть осей, добытых эмпирически из спора о class и акторах, реконструируют полный причинный анализ Аристотеля — и замыкают его:

  • материальная причина — субстрат-состояние, та самая S в S^N, «материя» вещи, проходящая сквозь все оси;

  • формальная причина — ось I (какая форma, каков её статус) вместе с осью IV (когда форма действует);

  • действующая причина — ось V (движитель);

  • целевая причина — ось VI (телос).

Плюс два классических дополнения к четвёрке: ось III есть principium individuationis, принцип, делающий вещь отдельным этим; ось II есть вопрос о самой категории субстанции — субстанция против процесса. Больше структурных причин у Аристотеля нет: седьмой оси этого рода не существует, каркас полон. Действующая и целевая причины появились последними и последними замкнули квартет — что не случайно: они и есть то, что механистическая онтология изгоняла усерднее всего.

Третье — лестница души, и монада, собранная до конца. Оси IV, V, VI суть в точности аристотелева восходящая лестница одушевления:

Программирование как экспериментальная метафизика - 41

Артефакт последовательно обретает перцепцию (IV), спонтанность (V) и стремление (VI) — и на шестой ступени пересекает порог, который традиция всегда клала между просто-жизнью и практическим субъектом. Монада, к которой сходились четыре первые дрейфа, лишь теперь укомплектована полностью: замкнутость (III) + перцепция (IV) + аппетиция (V) + воля-телос (VI), при том что ось I задаёт её сущность-род, а ось III — её отдельность.

Два закона, и цезура между ними. Дрейф по осям I–V гонит рост N — числа частей, машин, людей, а на пятой оси ещё и числа переплетающихся движителей. Это закон, обращённый внутрь: как собрать большое из малого так, чтобы оно поддавалось верификации конечным умом. Дрейф по оси VI гонит иное — E, открытость среды; это закон, обращённый наружу: как система преуспевает в мире, в котором нельзя всё расписать заранее. Между пятой и шестой осью проходит цезура: пять осей структуры отвечают на «как вещь устроена», шестая — на «в каком мире и ради чего она есть». Первые пять можно пройти, оставаясь инженером; шестая на пределе выводит за пределы инженерии.

И вот главный метавывод, ради которого стоило пройти всю дугу. Что мы, собственно, наблюдали? Не то, что программирование иллюстрирует одну философскую доктрину. А то, что полная классическая онтология — четыре причины, индивидуация, спор об универсалиях, лестница души, монадология — самопроизвольно выпадает в осадок из чисто инженерного давления, и выпадает с ценниками и откатами, каких у философии никогда не было. Аристотель не мог измерить цену действующей причины; распределённая система платит её консенсусом. Лейбниц не мог поставить эксперимент над безоконностью; CAP-теорема ставит его ежедневно. Кант рассуждал об автономии воли умозрительно; проблема элайнмента делает её инженерным риском. Это и есть точный смысл «экспериментальной метафизики»: не аналогия, а переоткрытие полной онтологии под нагрузкой — с порогами, где она ломается, с трейд-оффами, которыми она оплачена, и с разворотами, которыми она фальсифицируется.

12. Прогнозы для мультиагентных LLM-систем

Осталось испытать шестиосевой каркас на объекте, который строится сейчас и нарушает его посылки. У LLM-агентов нет разделяемого изменяемого состояния в прежнем смысле (состояние — текст контекста), и они актороподобны по рождению — инкапсулированы и message-passing из коробки. Наивный вывод: закон неприменим. И если остановиться, всё проспим — потому что возникает новая ось связанности, по которой экспонента возвращается.

Классическая проницаемость была про состояние. У языковых агентов возникает семантическая связанность — проницаемость про смысл, контекст и цель. Граница сообщения на естественном языке не удерживает смысл: |M| неограниченно, ибо язык не имеет фиксированного интерфейса. 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, актором, циклом событий и целевой функцией — акт практикующего метафизика, обычно не ведающего, что он метафизик.

Четыре первые оси свели в монаду — единственную устойчивую форму композиции многого из частей для конечного ума, — и вывели закон сложности: направление дрейфа необходимо и субстрат-независимо (аддитивность бьёт мультипликативную связанность), а его темп — тень N. Пятая ось, агентность, вернула в кадр действующую причину, которую четыре структурные оси опустили, описывая вещи в покое, — и показала, что N имело скрытое второе значение (переплетение движителей), а тяжесть субстрата десятилетиями держала крышку над онтологическим идеалом «одна душа на объект». Шестая ось, телос, замкнула четыре причины Аристотеля — и оказалась другой: её гонит не N, а E, открытость мира; она обращена наружу, и на её дальнем пределе вещь перестаёт быть артефактом.

Собранные вместе, шесть осей суть не коллекция аналогий, а полная классическая онтология, самопроизвольно выпавшая в осадок из инженерного давления — с ценниками, порогами и откатами, каких у философии не было. Это и есть строгий смысл названия: не программирование иллюстрирует метафизику, а метафизика впервые получает лабораторию, где её догадки о материи, форме, движителе, цели, границе и универсалиях проверяются на прочность, на цену и на обратимость — с N и E в роли ручек реостата.

И последнее. Пройдя шестую ось до конца, программирование упирается в собственную границу как технической дисциплины. Пока телос вещи внешен, рассогласование есть баг — чинишь. Когда телос внутренен, представлен и преследуем, рассогласование становится состязательным, а на пределе — вопрос перестаёт быть техническим вовсе. Там, где у вещи появляется своя цель, к ней делается применимо «должно», а не только «устроено»; отладка исподволь становится воспитанием, а спецификация — этикой. Мы, споря о наследовании, шаг за шагом построили не механизм, а — на пределе последней оси — существо, у которого есть свои цели. И тогда вопрос «как это построено», которым мы начали, сменяется вопросом, которым честно закончить: что мы этому существу должны.

Программирование как экспериментальная метафизика: дисциплина, в которой человечество, решая инженерную задачу собрать большое из малого так, чтобы оно не рассыпалось и поддавалось пониманию, вслепую переоткрывает — и впервые проверяет на цену — свои древнейшие догадки о том, из чего состоит мир, кто в нём действует и ради чего; и доходит по этому пути до порога, за которым техника кончается и начинается этика.

Автор: nifigase

Источник