Здравствуйте, Klapaucius, Вы писали:
K>Не согласен. "поддержка иммутабельности в языке" понятие предельно ясное, а "модель акторов" — это скорее баззворд.
Ну можно тогда увидеть ссылку (скажем в той же Википедии) на определение "поддержки иммутабельности в языке"? ) Ссылку на описание модели акторов я естественно без проблем предоставлю. )
_>>С чего бы это? Как раз мутабельной копирование не требуется. K>Разумеется требуется. Создать версию мутабельной структуры без копирования не получится.
Ну т.е. в том моём примере у меня значит всё же не мутабельная структура? ) Она же обходилась без копирования для создания новых версий... )
K>У вас тут телега впереди лошади. "Подавляющим большинством задач" объявляются те, для которых достаточно "управления через RAII" — вот так вернее. Все остальные юзкейсы для программиста на низкоуровневом языке в "слепой зоне". K>Как выяснилось из опытов с MLkit, управления даже с помощью менее ограниченной техники чем RAII — вывода регионов — для высокоуровневого кода недостаточно. О чем я уже писал.
Всё правильно, речь про RAII. Так вот мы же говорим о практике, а не о теории, не так ли? И соответственно если через RAII получается реализовать скажем 90% задач работы с памятью (а остальное реализуем скажем через подсчёт ссылок и т.п.), то уже получим суперэффективный код. Который будет заметно превосходить все замечательные универсальные сборщики мусора.
K>Реализация управления памятью для "практически каждой конкретной задачи" это совсем не то, что ожидается от высокоуровневого языка. Высокоуровневый язык — это абстрагирование от размещения и управление памятью, которое хорошо работает в общем случае.
Возможно. Но такова цена настоящего быстродействия. Но опять же замечу главное — это ситуация для весьма редкого класса задач. А большую часть обычных задач C++ решает эффективнее всех и без написания какого-то специального кода (стандартные методы типа RAII на стеке).
K>Иммутабельные структуры решают реальную проблему, которая называется "удобство программиста". Работать с персистентной версией структуры данных удобнее, чем с эфемерной как раз за счет версионности.
Если сама задача требует версионности, то безусловно. Вопрос опять же в том насколько это часто встречающаяся на практике задача.