TGViewer
Монада Кедавра Монада Кедавра @monada_kedavra · 1.54K subscribers
Post #189 5.27K
интерактивный разбор понятия эффектов и коэффектов в языках программирования

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

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

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

http://tomasp.net/coeffects/
tomasp.net Coeffects: Context-aware programming languages Interactive essay that explains theory of coeffects and lets you type-check and run sample programs.
More from @monada_kedavra
  1. Oct 27, 2024Things you should never do Создатели Arc Browser смачно кинули всех пользователей и фактич…
  2. Oct 8, 2024Архипелаг проблем Недавно Великобритания отдала маленький атолл Чагос посреди Индийского о…
  3. Sep 18, 2024Мы не можем использовать термин JavaScript. И это хорошо Недавно попалась на глаза петиция…
  4. Jul 19, 2024No reason Недавно увидел open source проект Дмитрия Коваленко subtitler, приложение для ге…
  5. Jun 21, 2024Блокировка cookies замедляет веб, к радости Google Многие наверняка уже слышали о скорой в…
  6. Jun 20, 2024Абсолютное безумие: roblox портировал весь жс стек на lua: react, jest, graphql, apollo, r…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →