# Диалектика становления: абстракция - конкретное - обобщение Дерево сущностей в **prolet** представлено ниже: ```text Обобщённые абстракции (отрицание) ↓ Конкретные типы (противоположность) ↓ Структуры (синтез) ↓ ↘ атрибуты методы ^ Интерфейс ``` В данном случае отображается не иерархия типов, а онтологический процесс становления, в соответствии с законами диалектического материализма: - `отрицание` → `противоположность` → `синтез`, - `форма` → `содержание` → `единство формы и содержания`. Разберём схему более подробно, уточним и закрепим эти положения как каноническое _отражение развития сущего_ в **prolet**. ## 🔍 Диалектический разбор ### Обобщённые абстракции (отрицание) **Что**: `Целое`, `Строка`, `Перечисление`, `Массив`, `Логическое` — формы из математического или логического дискурса. **Статус**: не типы, а отрицание конкретности, идеализированные формы, выделенные из практики. **Роль в диалектике**: «Отрицание первичной практики счёта, измерения, классификации». ❗ В **prolet** нельзя использовать напрямую — только через `@_база`. ### Конкретные типы (противоположность) **Что**: `Рубль`, `ЧеловекИмя`, `ПользовательНомер`, `Роль` — материализованные формы сущего, возникшие в практике. **Статус**: противоположность абстракциям — они вписаны в контекст, имеют единицы, ограничения, назначение. **Роль в диалектике**: «Противоположность идеализму — конкретное, социальное, ограниченное сущее». ✅ Определяются через `(тип ... @_база Абстракция)`. ### Структуры (синтез) **Что**: `Пользователь`, `Заказ`, `Документ` — формы композиции, отражающие организацию практики. **Статус**: синтез абстрактного и конкретного — не просто набор полей, а целостная форма сущего, в которой отношения между частями — так же важны, как и сами части. **Роль в диалектике**: «Синтез: не тип, не значение, а форма организации практики». ✅ Определяются через `(структ ...)`. ### Атрибуты **Что**: `@_база`, `@_диапазон`, `@_обязательно`, `@значение`, `@активен` — характеристики сущего. **Происхождение**: Унаследованы от структур, как их внутренние свойства. **Роль**: Отражают состояние, статус, ограничения, контекст. ✅ Атрибуты — не метаданные, а сущее, выделенное из структуры. ## Методы и Интерфейсы ```text структуры ↓ методы ↑ интерфейсы ``` **Методы**: действия, применяемые к структурам — `ПроверитьАктивность`, `ОтправитьЧерезПочту`. **Интерфейсы**: обобщение методов, отражающее форму взаимодействия с сущим, независимо от реализации. 💡 Интерфейс — не "сверху", а "снизу": он возникает как обобщение практики работы со структурами, как отрицание конкретной реализации. ✅ Таким образом: - Структуры порождают методы, - Методы обобщаются в интерфейсы, - Интерфейсы — отрицание конкретности методов, но на основе практики. 🔄 Полная диалектическая цепочка ```text (1) Обобщённые абстракции ↓ (отрицание практики) ↓ (2) Конкретные типы ↓ (противоположность абстракции) ↓ (3) Структуры ↓ (синтез формы и содержания) ↓ ↘ (4) Атрибуты (5) Методы ↓ (6) Интерфейсы ↑ (обобщение практики) ``` ## 📜 Онтологическое содержание уровней - Обобщённые абстракции: `Целое`, `Строка` (Идеализация практики) - Конкретные типы: `Рубль`, `Роль` (Материализация абстракции) - Структуры: `Пользователь`, `Заказ` (Форма организации сущего) - Атрибуты: `@_база`, `@активен` (Характеристики сущего) - Методы: `ПроверитьАктивность` (Действия над сущим) - Интерфейсы: `Хранилище`, `Аутентификатор` (Обобщение форм взаимодействия) ## 💡 Философское обоснование Идеи языка следуют диалектическому материализму: - Развитие идёт не сверху вниз, а от практики к её обобщению. - Интерфейс не первичен, он — порождение практики работы со структурами. - Абстракция не основа, она — отрицание конкретного, - а конкретный тип — противоположность абстрактного обобщения, - структура — синтез конкретных типов. 💬 «Не `interface` как божественный замысел, а `структ` как продукт труда, и интерфейс как его обобщение — вот путь материалистического программирования». ## 🏁 Заключение Установлена онтологическая модель **prolet**: Это не иерархия типов. Это — диалектика становления сущего: `от идеализированной формы` → `к конкретному` → `к организованному` → `к взаимодействующему`. **prolet** — не язык программирования. Это — _язык фиксации развития практики_.