Программист, CEO SHIFU.IO

Простыми словами: Детерминированность vs Идемпотентность

Берем короткие определения из википедии:

Детерминированность - процесс, исход которого полностью определен алгоритмом, значениями входных переменных и начальным состоянием системы.

Идемпотентность - свойство объекта или операции при повторном применении операции к объекту давать тот же результат, что и при первом.

Упрощаем

Детерминированность - процесс, результат которого предопределен.

Идемпотентность - свойство чего-либо давать один и тот-же результат.

В чем разница?

В интернет-статьях и форумах трактуют по разному:

Детерминированность - общее понятие про мир (но, математика - один из способов описания мира прим.авт.).
Идемпотентность - это про математику, функция которая гарантирует выводимый результат (тогда это частное входит в общее понятие детерминированности? прим.авт.).

Детерминированность - результат может быть искажен (добавлены какието биты в результат, но тогда это недетерминированность прим.авт.).
Идемпотентность - избавляет от побочных эффектов.

Детерминированность - может влиять на систему (но это термин не о влиянии, а о выдаче результата относительно входных параметров прим.авт.).
Идемпотентность - не вносит изменения в систему (см выше прим.авт.).

В итоге, все с водится к:

Да, в целом термины одинаковы, поэтому кроме предположений мы конкретные отличия обосновать не можем…