Здравствуйте, so5team, Вы писали:
S>В 1980-х Си уже был ЯВУ.
Он был очень примитивен по сравнению с "серьезными" ЯВУ того времени. Сложность написания и поддержки крупных/сложных проектов на C росла лавинообразно.
S>сам Страуструп говорил: "С++ проектировался с целью обеспечить средства организации программ, присущие языку Simula
Да, но не потому, что у языка Simila было такое название, а потому, что он для тех времен был достаточно продвинутым.
S>а так же необходимую для системного программирования эффективность и гибкость, свойственные языку Си"
В этом и заключалась уникальность подхода — не использовать стиль C для создания совершенно нового языка, как это делалось неоднократно, а
расширить C в сторону "взрослых" ЯВУ, не потеряв при этом компактности и эффективности простого кода.
S>Ada и Clu (и ML, емнип) упомининались Страуструпом как первоисточники.
Возможных для заимствования первоисточников были десятки. Кто ж виноват, что он зациклился на Ada и его особенностях?
S>Ну уж гибче, чем в C++, еще поискать нужно.
Ну, если сравнивать только подходы, похожие на C++, то конечно.
S>Огласите свой список языков без сборщика мусора, в которых шаблоны гибче, чем в C++?
Какая вообще связь у шаблонов со сборкой мусора, кроме весьма отдаленной?
S>А то, что шаблоны не просты, так это как раз следствие их гибкости.
Претензия к ним не в том, что они не просты, а в том, что они излишне заморочены, созданы и развиты прежде всего стремлением впихнуть широкую функциональность в убогий синтаксис.
ЕМ>>форма была выбрана достаточно искусственно
S>Расскажете как сделать лучше?
Я уже много раз рассказывал. Главное — не пытаться запихать всю потребную функциональность в искусственно ограниченные синтаксис и семантику.
S>Вы хоть знаете как в C++ сделать адаптацию своего типа к structured binding?
Представляю в общих чертах, ибо пока не требовалось настолько, чтоб в этом разбираться досконально.
Кстати, подобные вещи легко делались бы на "функционально адекватных" макросах, имейся таковые в языке. И не было бы нужды впихивать это в сам язык, и каждый мог бы хоть использовать готовые конструкции из библиотек, хоть делать сам на собственный вкус и потребность. А так и язык в очередной раз усложнили/утяжелили, и способы управления связыванием зафиксировали, без возможности их изменения/дополнения.