Илья Ермаков писал(а):
Один из принципов, соблюдаемых в Обероне, - нужные сложные типы определяются явно, для этого используют RECORD.
Например, для создания каких-то абстрактных типов с ограничениями вроде Скорость, Высота и проч. Самый универсальный способ - перенести эту логику на программиста и его абстрактные типы данных, а не пытаться засунуть спец. типы в компилятор
Илья Евгеньевич, я же кажется Вам уже объяснял, что никакими run-time действиями Вы не воспроизведете полную эквивалентность (скажем, совместимость по присваиванию) только по сигнатуре метода,
независимо от типа объекта, к которому применяется метод.
Убедительная просьба - перечитайте еще раз, но не "по-диагонали"
Это было бы тем более правильно, чем громогласнее "тезисы" Вы декларируете.
Илья Ермаков писал(а):
два адреса: адрес метода (возможно, просто его номер в вирт. таблице, неважно) и адрес экземпляра объекта
Вообще-то, важно. Между ранним связыванием и поздним - есть разница. Также существует разница между проверками на соответствие типов в run-time, и compile-time. И проявляется эта разница и на надежности программирования, а не только на эффективности.
Блин, даже до апологетов C++ сей замечательный факт уже дошел, но не до Вас.
Не могут они воспроизвести эту функциональность. А вот
Илья Евгеньевич - может, оказывается.
Потому-что ему пофиг, когда производятся проверки и связывание в run-time, или в compile-time.
Причем, свято уверен, что основная фишка Оберонов.
В начале топика, я может быть и поверил бы (и как следствие - послал бы этот Оберон куда подальше), но сейчас я вижу другое - Вы слишком много на себя берете, когда вещаете с броневичка, что нужно программистскому сообществу вообще, и Обероновскому (как я недавно выяснил) - в частности.
==================================================================
А теперь я Вам дам урок по Окамму. Потому как вижу - ни хрена Вы в нем не понимаете.
Не вводить новых сущностей - ДА, Вы не нарушите принцип Окамма.
Вы действительно не введете новую сущность без необходимости. Но, регулярно так поступая, вы соблюдаете не вовсе принцип Окамма, а принцип религиозной секты.
Вся разница в последних двух словах: БЕЗ НЕОБХОДИМОСТИ.
Что означает следующее: перед отвержением новой сущности мы показываем отсутствие этой самой необходимости.
Что требует несколько большего ума.
Если Вы отвергаете некую сущность, которая ведет к лучшему пониманию кода человеком, значит Вы поддерживаете язык, в котором это не является необходимостью.
Настолько воинственно, что позволяете себе некорректные высказывания в адрес той части Оберон-сообщества, которая эту необходимость (понимаемость человеком) признает.
Урок окончен.