Когда-то я наткнулся на ряд произведений, написанных коллективом авторов, называющих себя "Внутренний предиктор СССР" (ВП СССР). Коллектив ставит себе задачу сформировать и сформулировать максимально широкую мировоззренческую концепцию. То, что получилось на данный момент, названо "Концепцией общественной безопасности" (КОБ). Она произвела на меня большое впечатление масштабом и глубиной и изменила мой взгляд на привычные вещи.
Многие привыкли представлять себе мир как соединение материи, энергии, пространства и времени. Мы усвоили это в том или ином виде еще со школы и не задумываемся, что такое понимание может быть не правильным и вести к ошибкам. Именно эту мысль и проводят авторы КОБ. Они утверждают, что мир состоит из единства Материи, Информации и Меры и что в основу миропонимания нужно положить именно эти понятия, так как "энергия", "пространство" и "время" выводимы из них. Вникая в это, я, неожиданно для себя, обнаружил тесную связь с понятиями объектно-ориентированного программирования. В статье я хочу показать эту связь.
Объект (в ООП) обладает состоянием, поведением и индивидуальностью.
Состояние – это совокупность свойств и их значений.
Поведение – это действия и реакции объекта, выраженные через изменения его состояния и передачу сообщений. Обычно мы представляем себе поведение как совокупность методов объекта.
Структуру и поведение объекта несет в себе класс. Структура подразумевает совокупность свойств объекта или множество возможных состояний.
Следует различать множество возможных состояний и текущее состояние объекта. Когда мы говорим, что объект обладает состоянием, мы подразумеваем, что оно взято из множества возможных состояний, задаваемых классом.
Индивидуальность – это свойство объекта, отличающее его от всех других объектов (даже от тех, которые имеют тот же класс и то же состояние).
Объединяя сказанное, можно представить объект как совокупность класса, текущего состояния и индивидуальности (если рассматривать класс, как носитель поведения и множества возможных состояний объекта).
Таково понятие Объекта в объектно-ориентированном программировании. Перейдем к концепции Материи-Информации-Меры в КОБ.
Объект реального мира (по КОБ) представляет собой единство Материи, Информации и Меры.
Материя – то, из чего объективно состоит окружающий мир, то, что мы можем субъективно ощутить нашими органами чувств. Например, стул состоит из материи.
Информация – то, что имеет свойство отображения, это то, что мы можем скопировать с одного материального носителя на другой. Например, фотография стула – это не сам стул, но она содержит информацию о стуле или его образ. Понятие образа тождественно понятию информации.
Мера – форма, задающая множество возможных состояний материи и информации, а также законы (алгоритмы) их преобразования. Мера – это форма, закон, алгоритм, система кодирования. Чертеж стула несет в себе его меру, но мерой являются и физические законы, благодаря которым возможно существование стула.
Человек может мысленно отделить одно из этих понятий от другого, но в реальности ничто не может существовать иначе как в их единстве. Стул без меры – это нечто бесформенное, стул без образа – это нечто непознаваемое, стул без материи – это нечто невоплотимое.
Можно заметить сходство понятий меры (по КОБ) и класса (в ООП), так как они оба обозначают нечто, что задает структуру и поведение объекта. Между информацией и текущим состоянием тоже можно заметить сходства, так как они оба обозначают то, что можно скопировать. Однако, чтобы копируемый объект приобрел индивидуальность, его необходимо поместить на новый материальный носитель (например, записать в новую область памяти). Так, индивидуальность объекта (в ООП) указывает нам на его материальную составляющую. Если принять все вышесказанное, то можно заметить, что понятие объекта в ООП отражает понятие объекта в КОБ.
В понятии объекта мы уверены, как программисты. Мы знаем, что оно сложилось из практической необходимости в борьбе со сложностью. Если мы находим отражение этих понятий в концепции Материи-Информации-Меры, может ли это послужить косвенным подтверждением ее правильности? С другой стороны, концепция Материи-Информации-Меры претендует на наиболее общее описание реальности. Находя отражение этой концепции в ООП, можем ли мы утверждать, что теория программирования затрагивает не только сферу разработки программного обеспечения, но и более глубокие вопросы, и делает это адекватно?
Понятия ООП я привожу по книге Грэди Буча "Объектно-ориентированный анализ и проектирование с примерами приложений, 3-е издание"
Понятия КОБ я брал из книг и статей этого ресурса: https://dotu.ru
Автор: anzem