stanilar писал(а):Есть языковые конструкции, от которых нельзя отказаться. Если вместе с ними, язык содержит все необходимые возможности, то нет острой необходимости плодить сущности.
от языковых конструкций никто не предлагает отказатся. Новые сущности не предлагают плодить.
Наоборот, предлагают уточнить описание существующих и сделать его более модульным.
При этом 100% обратная совместимость. Т.е. все private можно оставить в interface.
Например, почему в С++, описание класса должно идти целиком?
Потому что в С++ классы могут легко располагатся в стеке, и полный размер должен быть известен каждому кусочку кода, на момент компиляции.
В Паскале, размер класса нужен только на момент исполнения, так что скрытую "private" часть класса, можно спрятать в implementation. (Но даже в этом случае, размер экземпляра будет известен на момент компиляции)
Второй пример, почему в С++, описание класса должно идти целиком.
Потому что в С++ есть "друзья" которые имеют доступ к приватным полям класса, естественно они должны знать о приватных полях.
В Паскале "друзей" нет, а есть область видимости модуля. Весь код, находящийся в том же модуле имеет доступ к "private" секции. Весь модуль - "друг". Если "private" поля вынести в implementation, область видимости это никак не нарушит.