Re[5]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: so5team https://stiffstream.com
Дата: 16.09.25 11:15
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

S>>Цель создания C++ была в том, чтобы скрестить Симулу с Си.


ЕМ>Цель была прежде всего в том, чтобы раздвинуть возможности C в сторону ЯВУ


В 1980-х Си уже был ЯВУ. Конкретно же сам Страуструп говорил: "С++ проектировался с целью обеспечить средства организации программ, присущие языку Simula, а так же необходимую для системного программирования эффективность и гибкость, свойственные языку Си"

Это прям первый параграф введения в книге "Дизайн и эволюция языка C++".

S>>Шаблоны тоже изначально не в планах были. К ним чуть позже пришли, когда выяснилось, что обобщенное программирование на Си-шных макросах -- ну такое себе удовольствием.

S>>Это мы сейчас уже, с позиций послезнания, можем рассуждать о нереализованной возможности.

ЕМ>Уже много раз было подчеркнуто, что к тому времени было известно достаточно много способов обобщенного программирования


Ada и Clu (и ML, емнип) упомининались Страуструпом как первоисточники. При этом Страуструп негативно отзывался о реализации обобщенного программирования в Ada:

Мы написали много макросов в стиле шаблонов, чтобы понять, какие языковые средства необходимы для поддержки данного стиля программирования. Размышляя над шаблонами, я не отводил главное место языку Ada, который лишь вызывал у меня раздражение своими операторами инстанциирования шаблонов.


ЕМ>и этот механизм можно было сразу сделать и более простым, и более гибким, а потом, по мере использования, допиливать как в сторону расширения, так и в сторону ограничений.


Ну уж гибче, чем в C++, еще поискать нужно. Огласите свой список языков без сборщика мусора, в которых шаблоны гибче, чем в C++?
А то, что шаблоны не просты, так это как раз следствие их гибкости.

ЕМ>Но форма была выбрана достаточно искусственно — такое впечатление, что кому-то она просто очень сильно понравилась, и ее продавили чисто на эмоциях.


Расскажете как сделать лучше?

S>>Что касается pattern matching-а, то на первый взгляд есть серьезное противоречие между ООП-шной инкапсуляцией и возможностью разделить объект на составляющие в рамках pattern matching-а.


ЕМ>Так это ж все можно легко регулировать.


Правда? Да что вы говорите!!!

Вы хоть знаете как в C++ сделать адаптацию своего типа к structured binding?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.