Что общего у скорости вычислений, мутабельности, кеширования и исключений? Все это – сайд-эффекты, которые сопровождают результаты вычислений. Виталий Брагилевский показал нам невероятно прекрасную картину, которая открывается, если рассматривать все возможные эффекты как часть одной системы – программирование становится более простым, контролируемым и выразительным!
Полезные ссылки:
— Книга про эффекты вообще и ZIO (Scala) https://effectorientedprogramming.com/
— Библиотека для TypeScript https://effect.website/
— OCaml Effect Handlers https://ocaml.org/manual/5.2/effects.html
— Язык Eff https://www.eff-lang.org/
— Язык Effekt https://effekt-lang.org/
— Язык Koka https://koka-lang.github.io/koka/doc/index.html
— Язык Unison https://www.unison-lang.org/
— Functional Core, Imperative Shell https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell
❓ Хочешь обсудить выпуск или задать вопрос эксперту? Вступай в наш Telegram-чат: https://t.me/podlodka
📰 Не любишь чаты, но хочешь оставаться в курсе дел и прокачивать свой IT кругозор? Подписывайся на наш Telegram-канал: там публикуются анонсы новых выпусков, а в комментах идут ценные и горячие обсуждения! 5 тысяч опытных IT-специалистов уже с нами: https://t.me/podlodkanews
Тайм-коды:
00:00 О чем выпуск
07:28 Влияние эффектов или их отсутствие
28:10 Разновидности сайд-эффектов
32:14 Исключения как эффект
40:47 Кэширование и отказоустойчивость
54:17 Влияние контекста на вычисления
01:04:44 Алгебраические эффекты
01:07:43 Эффекты в динамических языках
01:08:45 Преимущества системы эффектов
01:23:38 Тестирование эффектов
01:26:24 Реализация систем эффектов в языках программирования
01:44:40 Как соотносятся системы эффектов и линейные типы
01:45:46 Эффекты в Unison
01:56:37 Дебаг
02:07:35 Заключение