2 ms·
I'd say any feature is cool if it: - Is small/simple/principled (i.e. understandable) - Enables many desirable programming styles or capabilities - Complemen
by chriswarbo 4y ago
I'd say any feature is cool if it:
- Is small/simple/principled (i.e. understandable)
- Enables many desirable programming styles or capabilities
- Complements other features: ideally working even better in combination; or at least, working in an obvious way
Algebraic effects tick all these boxes IMHO. In particular, there are many languages which feature try/catch AND for/yield AND async/await AND call/return; whereas having algebraic effects subsumes all that, turning it into library code.
Note that we can get pretty much the same thing with, say, delimited continuations; so they're also cool. However, having delimited continuations AND algebraic effects would seem redundant/bloated.