История изменений
Исправление Nervous, (текущая версия) :
Так в любом случае придётся так делать, если надо, чтобы данные не портились.
Иммутабельные данные нельзя испортить же, они могут только устареть. Если мы хотим иметь какое-то изменяемое состояние и читать всегда последнюю версию, достаточно предусмотреть механизм, который будет атомарно заменять старое иммутабельное значение на новое (и прятать под капотом все очереди и блокировки, если они нужны) — как это делают ссылочные типы данных в кложе (atom, ref, agent, var).
Без иммутабельности это всё нормально работать не будет, конечно. (А без эффективной реализации персистентности будет, ahem, неэффективно.)
Исходная версия Nervous, :
Так в любом случае придётся так делать, если надо, чтобы данные не портились.
Иммутабельные данные нельзя испортить же, они могут только устареть. Если мы хотим иметь какое-то изменяемое состояние и читать всегда последнюю версию, достаточно предусмотреть механизм, который будет атомарно заменять старое иммутабельное значение на новое (и прятать под капотом все очереди и блокировки, если они нужны) — как это делают ссылочные типы данных в кложе (atom, ref, agent, var).
Без иммутабельности это всё нормально работать не будет, конечно.