Get Mystery Box with random crypto!

интерактивный разбор понятия эффектов и коэффектов в языках пр | Монада Кедавра

интерактивный разбор понятия эффектов и коэффектов в языках программирования

эффекты это то, как код влияет на окружающий мир: чтение и запись мутабельного состояния, IO, а коэффекты это то, как окружающий мир влияет на код

к примеру, чтение текущего времени через performance.now() это коэффект, так как таймеры предоставляются системой и могут быть заменены по её усмотрению. примечательно, что именно это произошло после обнаружения уязвимости spectre, которая использовала таймеры системы для кражи защищённых данных через javascript. для борьбы с этим браузерам пришлось временно понизить точность результата, чтобы предотвратить утечку данных через процессорный кэш. иными словами то, что должно было быть чистым коэффектом (способом системы повлиять на ход выполнения программы) получило непредвиденный побочный эффект — чтение данных самой системы

понятие эффектов уже давно активно проникает в мейнстрим программирования и упоминается даже в реакте; наверняка адаптация идеи коэффектов тоже не за горами, думаю это позволило бы углубить понимание процессов, протекающих в наших приложениях и системах

http://tomasp.net/coeffects/