Re[6]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 16.09.25 14:56
Оценка:
Здравствуйте, 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?


Представляю в общих чертах, ибо пока не требовалось настолько, чтоб в этом разбираться досконально.

Кстати, подобные вещи легко делались бы на "функционально адекватных" макросах, имейся таковые в языке. И не было бы нужды впихивать это в сам язык, и каждый мог бы хоть использовать готовые конструкции из библиотек, хоть делать сам на собственный вкус и потребность. А так и язык в очередной раз усложнили/утяжелили, и способы управления связыванием зафиксировали, без возможности их изменения/дополнения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.