Александр Болдачев. Не баг, а фича

Информация
Год написания: 
2020
Систематизация и связи
Онтология

Как оказалось, многие вообще не знакомы с принципом приватности сознания. Чтобы не смущать словом «сознание», которое используется во множестве значений (как-то насчитали больше десятка), - так вот, чтобы не завязнуть в терминологических спорах, упомянутый принцип приватности можно сформулировать так: никакому субъекту принципиально недоступны ощущения других субъектов. Никому недоступно, как другой видит красный цвет, как ощущает вкус соли, как слышит терцию и даже как воспринимает формы. Или можно сказать, что «картинка» (визуальная, слуховая, обонятельная, эмоциональная, мыслительная), данная нам, когда мы находимся в сознании, дана только нам и больше никому. Она приватна. Доступа к ней не имеет никто, кроме нас.

Первый естественный вывод, следующий из сказанного, это констатация бессмысленности, некорректности вопроса, совпадает ли или не совпадает что-то на этих «картинках»? Вот так устроен мир, что мы не можем поставить себя в позицию Бога и сравнить разные «картинки». Мир нам дан только и исключительно индивидуально. Можно сказать, что у нас у каждого свой терминал, свой монитор, свое рабочее место, окруженное непроницаемыми перегородками, и нам доступно только то, что транслируется на «экран» наших мониторов.

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

Обращаю внимание, я пишу не о каких-то философских концептах, объяснительных гипотезах, а только и исключительно об обыденном непосредственном опыте каждого из нас. И прежде всего, этот опыт приватен. Все, что нам дано в нем, дано только нам и никому другому, у каждого свои ощущения (цвета, звука, вкуса, запаха, формы и пр.), недоступные для других. Но несмотря на эту приватность данности, мы каким-то образом умудряемся взаимодействовать. Не всегда успешно, но все же как-то умудряемся.

Можно представить, что все «рабочие места» подсоединены к одному компьютеру, серверу, который принимает управляющие события от множества мышек, пересчитывает результат и отправляет его на все мониторы. (Хотя лучше, конечно, тут говорить не об одном сервере, а о некоторой децентрализованной сети, о распределенной системе, чтобы не было единой точки отказа). Причем существенно, что в самой системе нет ни цветов, ни запахов, ни звуков, а только поток событий. Ощущения же порождаются исключительно на стороне мониторов. Причем настройки мониторов могут быть какими угодно: цветопередача экрана может быть сбита, геометрия искажена в любую сторону, но это никак не мешает взаимодействию. Более того, можно представить рабочие места, за которыми сидят некие существа, для которых терминалы преобразуют сетевые сигналы в комплексы запахов или звуков, а мышками эти существа управляют, например, испуская феромоны или посвистывая. И такая конструкция терминалов не влияет на возможность коммуникации. Если кто-то на своем рабочем месте инициировал событие «опасность», включив красный цвет, то на других рабочих местах оно может отобразиться, как запах сероводорода или вой сирены. (Здесь надо отметить, что это лишь аллегория, гипотетическое представление, необходимое для лучшего понимания. В непосредственном опыте сравнить, сопоставить данности на разных мониторах принципиально невозможно).

Теперь, мне кажется, можно перейти к следующему непосредственному выводу из нашего обыденного опыта, то есть к ответу на вопрос «а как же, за счет чего возможно взаимодействие субъектов при полном соблюдении принципа приватности?». Да, нам недоступно то, как представлен сигнал «опасность» на разных рабочих местах (звуком, цветом, запахом), но нам доступно событие его инициации. Именно событие является тем инвариантом, который не изменяет свое значение при преобразовании управляющих сигналов на всех этапах от мышки до формирования «картинки» на других мониторах. События перемещения, события возникновения, события уничтожения, поворота, указания и пр. нами воспринимаются инвариантно. Только через события, чаще всего события указания, возможна коммуникация между субъектами, замкнутыми в своих приватных клетушках. В сеть уходят события, из сети мы получаем события, и каждый монитор из этих событий строит свою «картинку», данную пользователю в ощущениях. (Еще раз напомню, что в сети, в системе нет никаких картинок, цветов, запахов и прочей приватной ерунды - там только потоки событий, не окрашенных в ощущения).

Тут естественно возникает вопрос: а разве сказанное про инвариантность событий не нарушает принцип приватности? Нет, не нарушает. Прежде всего, событие не несет в себе никаких конкретных ощущений; событие это то, что происходит с ощущениями (стало горячо, погасили свет, запахло горелым). На какой феноменальной основе реализованы события за перегородками мы никогда не узнаем. Нам доступно только предположение, что инициированное нами событие может быть воспринято другим (через непонятные нам изменения его ощущений). И самое главное, другой может совершить ответное событие: нечто изменить, на нечто указать на своем мониторе - и мы можем воспринять это как событие подтверждения нашего события. Вот так устроен мир. И это не гипотеза, а именно так он устроен: ощущения приватны, а события инвариантны. Так свидетельствует наш непосредственный опыт.

А теперь самое главное, ради чего был написан этот текст. Зададим вопрос: будь я проектировщиком этого мира, этой системы, как бы я решил проблему согласования множества мониторов с разными конструкциями и настройками, да еще с учетом возможности в будущем появления новых мониторов, построенных на неизвестных сегодня принципах? Как может быть устроена система, обеспечивающая согласование действий пользователей с произвольных «рабочих мест»? Прежде всего, я попытался бы отвязаться от конструкции мониторов, от специфики отображения данных. Система должна работать, то есть обеспечивать взаимодействие контрагентов, независимо от представления данных (визуального, вкусового, слухового). То есть надо предоставить полную свободу конструкторам терминалов. Это с одной стороны. А с другой, надо закрыть непосредственный доступ от терминала к терминалу и обеспечить их взаимодействие только через сеть, создав для этого универсальный, инвариантный (событийный) код.

Так и было сделано. Субъект, независимо от природы своей “картинки”, взаимодействует с другими субъектами посредством событий изменения элементов этой “картинки”, а по сути, изменения своих ощущений. А чтобы не смущать субъектов возможной абсурдностью чужих миров создатель закрыл их на ключ приватности – смотрите только на свою «картинку».

И что же получается? Приватность сознания, которая якобы должна являться препятствием для реализации совместной деятельности, оказалась базовым условием этой самой деятельности. Приватность – это не баг, а фича. Недоступность чужих терминалов устраняет проблему несопоставимости их конструктивных особенностей, несогласованности их настроек, является основным архитектурным решением системы, условием ее целостности и масштабируемости. Гениальное решение системного архитектора.