Владимир Лось писал(а):
Надо ещё сильно посмотреть, как изменятся алгоритмы разгребания "особых случаев"...
Какие такие алгоритмы?
Владимир Лось писал(а):
Вы понимаете, сколько это потянет за собой переделок и изменений даже в компиляторах?
Конкретно, например, в BB - минимум. Я уже писал - достаточно контроля за инициализированностью ссылок, плюс какое-нибудь ключевое слово для обозначения возможной "пустоты" (OPTIONAL), плюс синтаксическая конструкция для получения из "OPTIONAL Type" просто "Type" (можно использовать WITH).
Владимир Лось писал(а):
А пока с компиляторами возиться народ будет, другая его часть как-то должна в своём коде предлагаемый вами подход поддерживать...
Ой. Уж кто-кто, а Вирт со своими обронами никогда не заморачивался обратной совместимостью.
Владимир Лось писал(а):
Да что там компиляторы? Например передача аргументов. Размер совокупный передаваемых данных в процедуры. Или Вы планируете обобщённо всё "через ссылки" на контексты передавать?
Если OPTIONAL сделать только для ссылок (а не для любых скалярных типов), то с точки зрения реализации передачи аргументов - не изменится вообще ничего. Как передавались адреса, так и будут передаваться адреса. Если делать для любых типов (что ИМХО концептуально более правильно), то да, для реализации OPTIONAL скалярного типа в общем случае потребуется больше памяти (если на конкретной платформе нет какого-нибудь незадействованного лишнего бита). Но здесь все равно сохраняется принцип "вы не платите за то, что не используете" - для обычных (не-OPTIONAL) скалярных типов, все будет в точности как и раньше.
Владимир Лось писал(а):
Как естественное "выпадение" значения из множеств скалярных типов с темой связано???
Так, что если вводить концепцию "OPTIONAL" для обзначения нулевых ссылок (при том, что обычные ссылки будут всегда ненулевыми), то имеет смысл расширить эту концепцию на все типы, в том числе и скалярные.
Владимир Лось писал(а):
Если модель их не предусматривает, то она это должна обеспечивать. Или - обеспечивать "ловлю" и "не допущания"...
Ох. Ну вот покажите - как мне обеспечить ненулевую "ловлю" и "не допущания" "нулевой" БД в моей форме. В компайл-тайме.
Владимир Лось писал(а):
Не понятно, а почему поставлено противопоставление? Так, массивы, насколько мне известно, ТОЖЕ типы... Или - нет?
Массивы - это мета-типы, если угодно. Я бы не хотел вдаваться в терминологические споры, я уверен, что вы поняли, что я имею ввиду.