# Диалектика становления: абстракция - конкретное - обобщение

Дерево сущностей в **prolet** представлено ниже:

```text
    Обобщённые абстракции (отрицание)
      ↓
    Конкретные типы (противоположность)
      ↓
    Структуры (синтез)
      ↓           ↘
    атрибуты     методы
                    ^
                Интерфейс
```

В данном случае отображается не иерархия типов, а онтологический процесс становления, в соответствии с законами диалектического материализма:

- `отрицание` → `противоположность` → `синтез`,
- `форма` → `содержание` → `единство формы и содержания`.

Разберём схему более подробно, уточним и закрепим эти положения как каноническое _отражение развития сущего_ в **prolet**.

## 🔍 Диалектический разбор

### Обобщённые абстракции (отрицание)

**Что**: `Целое`, `Строка`, `Перечисление`, `Массив`, `Логическое` — формы из математического или логического дискурса.

**Статус**: не типы, а отрицание конкретности, идеализированные формы, выделенные из практики.

**Роль в диалектике**: «Отрицание первичной практики счёта, измерения, классификации».

❗ В **prolet** нельзя использовать напрямую — только через `@_база`.

### Конкретные типы (противоположность)

**Что**: `Рубль`, `ЧеловекИмя`, `ПользовательНомер`, `Роль` — материализованные формы сущего, возникшие в практике.

**Статус**: противоположность абстракциям — они вписаны в контекст, имеют единицы, ограничения, назначение.

**Роль в диалектике**: «Противоположность идеализму — конкретное, социальное, ограниченное сущее».

✅ Определяются через `(тип ... @_база Абстракция)`.

### Структуры (синтез)

**Что**: `Пользователь`, `Заказ`, `Документ` — формы композиции, отражающие организацию практики.

**Статус**: синтез абстрактного и конкретного — не просто набор полей, а целостная форма сущего, в которой отношения между частями — так же важны, как и сами части.

**Роль в диалектике**: «Синтез: не тип, не значение, а форма организации практики».

✅ Определяются через `(структ ...)`.

### Атрибуты

**Что**: `@_база`, `@_диапазон`, `@_обязательно`, `@значение`, `@активен` — характеристики сущего.

**Происхождение**: Унаследованы от структур, как их внутренние свойства.

**Роль**: Отражают состояние, статус, ограничения, контекст.

✅ Атрибуты — не метаданные, а сущее, выделенное из структуры.

## Методы и Интерфейсы

```text
    структуры
      ↓
    методы
      ↑
  интерфейсы
```

**Методы**: действия, применяемые к структурам — `ПроверитьАктивность`, `ОтправитьЧерезПочту`.

**Интерфейсы**: обобщение методов, отражающее форму взаимодействия с сущим, независимо от реализации.

💡 Интерфейс — не "сверху", а "снизу": он возникает как обобщение практики работы со структурами, как отрицание конкретной реализации.

✅ Таким образом:

- Структуры порождают методы,
- Методы обобщаются в интерфейсы,
- Интерфейсы — отрицание конкретности методов, но на основе практики.

🔄 Полная диалектическая цепочка

```text
      (1) Обобщённые абстракции
               ↓
          (отрицание практики)
               ↓
     (2) Конкретные типы
               ↓
    (противоположность абстракции)
               ↓
       (3) Структуры
               ↓
         (синтез формы и содержания)
        ↓             ↘
(4) Атрибуты        (5) Методы
                       ↓
                 (6) Интерфейсы
                       ↑
              (обобщение практики)
```

## 📜 Онтологическое содержание уровней

- Обобщённые абстракции: `Целое`, `Строка` (Идеализация практики)
- Конкретные типы: `Рубль`, `Роль` (Материализация абстракции)
- Структуры: `Пользователь`, `Заказ` (Форма организации сущего)
- Атрибуты: `@_база`, `@активен` (Характеристики сущего)
- Методы: `ПроверитьАктивность` (Действия над сущим)
- Интерфейсы: `Хранилище`, `Аутентификатор` (Обобщение форм взаимодействия)

## 💡 Философское обоснование

Идеи языка следуют диалектическому материализму:

- Развитие идёт не сверху вниз, а от практики к её обобщению.
- Интерфейс не первичен, он — порождение практики работы со структурами.
- Абстракция не основа, она — отрицание конкретного,
- а конкретный тип — противоположность абстрактного обобщения,
- структура — синтез конкретных типов.
💬
«Не `interface` как божественный замысел, а `структ` как продукт труда, и интерфейс как его обобщение —
вот путь материалистического программирования».

## 🏁 Заключение

Установлена онтологическая модель **prolet**:

Это не иерархия типов.

Это — диалектика становления сущего: `от идеализированной формы` → `к конкретному` → `к организованному` → `к взаимодействующему`.

**prolet** — не язык программирования.

Это — _язык фиксации развития практики_.
