> -- Sergej Durmanov писал(а):
> Тебя даже не смущает тот факт, что union это тип, а with это оператор. Но ты продолюаешь утверждать, что они похожи.Вирт выпилил вариантные записи из Оберона. Теперь люди думают, как впилить их обратно.

Нужно иногда немного домысливать, а не только придираться к форме. union - это совокупность из декларации типа и способов доступа к нему. В Си способы доступа почти не имеют синтаксиса, но это не значит, что их нет. В Обероне синтаксис более явный и он включает в т.ч. слово WITH.

Но в целом идея впилить обратно вариантные записи может иметь смысл именно для массивов. Хотя это частность, она не критична. Если целью языка является минимализм, то очевидно, что в представлении данных будут какие-то особенности, которые не позволят сделать его всегда оптимальным. Сами по себе теги типа дают неустранимые накладные расходы. Т.е. конечно может быть где-то и есть докторская о том, как их убрать, но мне не попадалась и в реальных языках я вижу, что теги типа есть, их нужно инициализировать и это стоит определённого количества тактов и байт кода. В Си без этого можно обойтись, зато небезопасно. Кому это не нравится - тот может выбрать язык без сборки мусора или использовать небезопасные конструкции. Отличие между "истинными" вариантными записями и их реализацией через наследование вполне можно уместить в категорию "выборы автора языка для минимализма и надёжности, накладывающие ограничения на эффективность".