Вроде бы простой банальный доклад чувака из Adobe, а с другой стороны не совсем. Основные посылы:
— С++ отлично поддерживает value types, поэтому используйте эту возможность по максимуму, где это возможно и не будете иметь каскад описанных в докладе проблем.
— Reference types — тоже самое, что глобальные переменные, поэтому избегайте эту семантику как только можете.
Value Semantics: Safety, Independence, Projection, & Future of Programming — Dave Abrahams CppCon 22
А интересным он показался мне потому, что я, неосознанно, сам начал скатываться к тем же методам что используются в докладе, но не мог четко обосновать самому себе. Особенно актуально в свете массовой многопоточки и параллельности.
Интересно мнение коллег, кто что думает на эту тему?
σ>>Полистал слайды, ничего специфичного для более новых плюсов. Да и вообще маловато материала.
SP>там же приводится пример с методом sort когда вектор принимается по значению. В доисторических плюсах получили бы минимум одно копирование вектора.
Доисторических — это каких? Более новых — это чем C++11.
Ну да, идёя хорошая. Применять, к сожалению, не приходилось.
Что же до контента, то всё что там есть в презентациях (про Value Semantics, про Type Erasure) было обcосано в видео Шон Пэрена 2012-2017 годов, а текстом наверняка ещё раньше, скорее всего даже в 90-х.
80+% докладов на CppCon повторяется из года в год.
Здравствуйте, Videoman, Вы писали:
V>Вроде бы простой банальный доклад чувака из Adobe, а с другой стороны не совсем. Основные посылы:
V>[cut=Value Semantics: Safety, Independence, Projection, & Future of Programming — Dave Abrahams CppCon 22]
Abrahams — кто угодно, но только не банальный чувак. Это он придумал метапрограммирование в С++ (с Dimov).
Здравствуйте, Vamp, Вы писали:
V>>Вроде бы простой банальный доклад чувака из Adobe, а с другой стороны не совсем. Основные посылы:
V>Abrahams — кто угодно, но только не банальный чувак. Это он придумал метапрограммирование в С++ (с Dimov).
чего это вдруг?
какие библиотеки он (Abrahams) разработал?
Здравствуйте, Vamp, Вы писали:
V>Abrahams — кто угодно, но только не банальный чувак. Это он придумал метапрограммирование в С++ (с Dimov).
Да я и не утверждал, что Абрахамс банальный. Банальный — понятие относительное. Доклад становится банальным, когда ты сам до всех этих выводов и практик дошел практически, но без обоснований, а потом смотришь доклад и думаешь: за мной следят!
Здравствуйте, night beast, Вы писали:
NB>буст это коллекция библиотек разных авторов. NB>какую конкретно в бусте сделал лично он?
Он один из основателей буста в принципе и автор более чем 3-х тысяч коммитов. Там дохера модулей, в которых он указан автором. Можно сказать, что также играл роль архитектора проекта в целом.
N>>Exception safety в stl. NB>про Exception safety я читал не у Абрахамса. он точно первый начал про это говорить?
Я не сказал, что он первым начал об этом говорит, он принёс это в boost и STL. Возможно, что и первый в таком свете.
NB>ну и к метапрограммированию это не сильно относится.
Он в принципе один из первых это начал продвигать в семинарах и статьях, потом книгу написал.
Здравствуйте, Nuzhny, Вы писали:
NB>>какую конкретно в бусте сделал лично он?
N>Он один из основателей буста в принципе и автор более чем 3-х тысяч коммитов. Там дохера модулей, в которых он указан автором.
здесь можно посмотреть, каких именно.
чего-то выдающегося не увидел
N>Можно сказать, что также играл роль архитектора проекта в целом.
то есть это его надо благодарить за то что коллекцию библиотек превратили в хренов монолит, вытащить что-то из которого тот еще геморрой?
что такого интересного в плане архитектуры у буста есть?
свои системы сборки, документирования, тестирования. то есть по сути свой набор велосипедов, которыми никто кроме них самих не нужен (за исключением теста, да и тот где буст не используют, вряд-ли применят)
отличное архитектурное решение.
N>>>Exception safety в stl. NB>>про Exception safety я читал не у Абрахамса. он точно первый начал про это говорить?
N>Я не сказал, что он первым начал об этом говорит, он принёс это в boost и STL. Возможно, что и первый в таком свете.
как то мелковато для "основателя метапрограммирования"
NB>>ну и к метапрограммированию это не сильно относится. N>Он в принципе один из первых это начал продвигать в семинарах и статьях, потом книгу написал.
вроде бы, книгу написал Алексей Гуртовой (автор mpl), а Абрахамс там соавтором. но это не точно.
Здравствуйте, night beast, Вы писали:
NB>здесь можно посмотреть, каких именно. NB>чего-то выдающегося не увидел
9 библиотек, причём от уже 13 лет им не занимается. Неплохо.
NB>то есть это его надо благодарить за то что коллекцию библиотек превратили в хренов монолит, вытащить что-то из которого тот еще геморрой?
В первую очередь, он создал коллекцию библиотек, раньше её не было. Создал свою систему сборки, документирования и тестирования. Превратил всё это чуть ли не во вторую стандартную библиотеку, плацдарм для исследования идей и новых библиотек. Роль буста в С++ сложно переоценить.
NB>как то мелковато для "основателя метапрограммирования"
?!!
NB>вроде бы, книгу написал Алексей Гуртовой (автор mpl), а Абрахамс там соавтором. но это не точно.
Обычно, кто первый указан в списке соавторов, тот больше и написал.
Здравствуйте, Nuzhny, Вы писали:
NB>>здесь можно посмотреть, каких именно. NB>>чего-то выдающегося не увидел
N>9 библиотек, причём от уже 13 лет им не занимается. Неплохо.
посмотри, в скольких из них он является единственным автором.
NB>>то есть это его надо благодарить за то что коллекцию библиотек превратили в хренов монолит, вытащить что-то из которого тот еще геморрой?
N>В первую очередь, он создал коллекцию библиотек, раньше её не было. Создал свою систему сборки, документирования и тестирования. Превратил всё это чуть ли не во вторую стандартную библиотеку, плацдарм для исследования идей и новых библиотек. Роль буста в С++ сложно переоценить.
он мог бы стать трамплином для развития, но стал лишь одной из многих библиотек.
делай они все по уму, у нас бы возможно в 2023 г. были нормальные пакетный менеджер и система сборки.
так что да, роль буста в текущем состоянии плюсов сложно переоценить.
NB>>вроде бы, книгу написал Алексей Гуртовой (автор mpl), а Абрахамс там соавтором. но это не точно. N>Обычно, кто первый указан в списке соавторов, тот больше и написал.
Здравствуйте, Videoman, Вы писали:
V>Интересно мнение коллег, кто что думает на эту тему?
Моё мнение: с этим докладом всё неверно, начиная от ошибочные архитектурно неверные решения исправляются неверными методами.
Пример на 7:07 class invariant
в классе две коллекции вектора xs и ys.
Проблема: нарушение инварианта при добавлении нового элемента в xs.
Далее автор утверждает, что это не проблема если данные приватны и начинает рассуждать о графе ссылок...
То, что эти данные приватные ничего не меняет, если вектора два, то должен существовать код обеспечивающий их инвариантность...
Фактически это архитектурно неверное решение, так как нам надо заниматься согласованием двух независимых объектов xs и ys. "заниматься согласованием" — это означает дополнительную работу, дополнительный код, который занимается согласованием, для обеспечения инвариантности. Но смотрите: если объединить x и y в одну структуру, то у нас останется один вектор xy для которого инвариантность соблюдается автоматически! И никакого дополнительного кода, никаких проверок не надо.