Здравствуйте, so5team, Вы писали:
S>Цель создания C++ была в том, чтобы скрестить Симулу с Си.
Цель была прежде всего в том, чтобы раздвинуть возможности C в сторону ЯВУ, не теряя при этом его низкоуровневых качеств. Чтоб на одном языке можно было писать и начальный загрузчик, и ядро, и системные надстройки, и прикладные программы. И в этом направлении в C++ как было, так и до сих пор остается неслабый простор для развития.
S>Шаблоны тоже изначально не в планах были. К ним чуть позже пришли, когда выяснилось, что обобщенное программирование на Си-шных макросах -- ну такое себе удовольствием. S>Это мы сейчас уже, с позиций послезнания, можем рассуждать о нереализованной возможности.
Уже много раз было подчеркнуто, что к тому времени было известно достаточно много способов обобщенного программирования, и этот механизм можно было сразу сделать и более простым, и более гибким, а потом, по мере использования, допиливать как в сторону расширения, так и в сторону ограничений. Но форма была выбрана достаточно искусственно — такое впечатление, что кому-то она просто очень сильно понравилась, и ее продавили чисто на эмоциях.
S>Что касается pattern matching-а, то на первый взгляд есть серьезное противоречие между ООП-шной инкапсуляцией и возможностью разделить объект на составляющие в рамках pattern matching-а.
Так это ж все можно легко регулировать. Вообще, многие якобы проблемы быстро решаются, если вместо вопроса "насколько это будет соответствовать идеологии языка?" задаваться вопросом "насколько легко и надежно будет это реализовать технически?", а при реализации обеспечивать возможность адекватного управления.