LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые, comparable by value значения и обладающие идентичностью, comparable by identity, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы в некоторых недоязычках называется или типа того? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

(Это, опять же, потребует сильно перетряхнуть нынешний доминирующий подход к ООП. Что, несомненно, встретит немалое сопротивление со стороны господ разработчиков.)

Например, посмотрим на values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для работы с последовательностью значений (например, этих самых векторов) во времени — ссылочный тип, atom, хранящий ссылку на текущее значение и предоставляющий API для её (атомарного) изменения — чтобы заставить её указывать на новое значение. Обязанности разделены, минимум путаницы.

Исправление Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые, comparable by value значения и обладающие идентичностью, comparable by identity, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы в некоторых недоязычках называется или типа того? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

(Это, опять же, потребует сильно перетряхнуть нынешний доминирующий подход к ООП. Что, несомненно, встретит немалое сопротивление со стороны господ разработчиков.)

Например, посмотрим на values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для работы с последовательностью значений (например, этих самых векторов) во времени — ссылочный тип, atom, хранящий ссылку на текущее значение и предоставляющий API для её изменения (на новое значение). Обязанности разделены, минимум путаницы.

Исправление Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые, comparable by value значения и обладающие идентичностью, comparable by identity, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы в некоторых недоязычках называется или типа того? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

(Это, опять же, потребует сильно перетряхнуть нынешний доминирующий подход к ООП. Что, несомненно, встретит немалое сопротивление со стороны господ разработчиков.)

Например, посмотрим на values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для хранения последовательности значений (например, этих самых векторов) во времени — ссылочный тип, atom. Обязанности разделены, минимум путаницы.

Исправление Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые, comparable by value значения и обладающие идентичностью, comparable by identity, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы в некоторых недоязычках называется или типа того? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

Но это, опять же, потребует сильно перетряхнуть нынешний доминирующий подход к ООП. Что, несомненно, встретит немалое сопротивление со стороны господ разработчиков.

Например, как values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для хранения последовательности значений (например, этих самых векторов) во времени — ссылочный тип, atom. Обязанности разделены, минимум путаницы.

Исправление Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые, comparable by value значения и обладающие идентичностью, comparable by identity, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы в некоторых недоязычках называется или типа того? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

Например, как values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для хранения последовательности значений (например, этих самых векторов) во времени — ссылочный тип, atom. Обязанности разделены, минимум путаницы.

Исправление Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится какой-то механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые, comparable by value значения и обладающие идентичностью, comparable by identity, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы в некоторых недоязычках называется или типа того? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

Например, как values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для хранения последовательности значений (например, этих самых векторов) во времени — ссылочный тип, atom. Обязанности разделены, минимум путаницы.

Исправление Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится какой-то механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые, comparable by value значения и обладающие идентичностью, comparable by identity, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы в некоторых недоязычках называется или типа того? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

Например, как values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для хранения последовательности значений во времени — ссылочный тип, atom. Обязанности разделены, минимум путаницы.

Исправление Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится какой-то механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые, comparable by value значения и обладающие идентичностью, comparable by identity, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы называется или типа того? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

Например, как values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для хранения последовательности значений во времени — ссылочный тип, atom. Обязанности разделены, минимум путаницы.

Исправление Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится какой-то механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые, comparable by value значения и обладающие идентичностью, comparable by identity, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы называется? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

Например, как values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для хранения последовательности значений во времени — ссылочный тип, atom. Обязанности разделены, минимум путаницы.

Исправление Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится какой-то механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Просто будет два типа объектов — неизменяемые значения и обладающие идентичностью, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы называется? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

Например, как values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для хранения последовательности значений во времени — ссылочный тип, atom. Обязанности разделены, минимум путаницы.

Исходная версия Nervous, :

Вместо мутирования объектов порождать новые … Никаких проблем уложить это в ООП нет

В какой-то момент всё равно понадобится какой-то механизм для работы с изменяемыми ссылками на неизменяемые объекты. Хотя, конечно, можно для этого использовать обычные изменяемые объекты, как сейчас. Будет два типа объектов — неизменяемые значения и обладающие идентичностью, изменяемые ссылки на неизменяемые значения.

Похоже, движение в этом направлении уже давно идёт — value classes вроде бы называется? Правда, ничто технически не мешает господам разработчикам продолжать по старинке пользоваться только вторыми и игнорировать первые. Наверное, лучше, чтобы это был отдельный механизм, который было бы невозможно (или хотя бы трудно и неудобно) абузить таким образом.

Например, как values & references в кложе. Для хранения последовательности значений у нас значение — immutable persistent vector, для хранения последовательности значений во времени — ссылочный тип, atom. Обязанности разделены, минимум путаницы.