3 ms·
I agree with ericb that many apparently difficult concepts are made harder to understand by an abundance of poor explanations. But in the same way, some of the
by sah 19y ago
I agree with ericb that many apparently difficult concepts are made harder to understand by an abundance of poor explanations. But in the same way, some of them are made harder to understand by poor design. Continuations might be an inconvenient factorization of their underlying concepts.
Monads seem more fundamental to me, in that they capture a broader class of ideas, and seem less machine-oriented. But the overwhelming number of awful monad tutorial blog posts suggests that they aren't any more convenient to think about than continuations.
I think maybe we're lacking a good framework for thinking about concurrency in general. Threads seem simple at first, but make it easy for even very skilled hackers to get tangled up in race conditions and deadlocks. Coroutines are perhaps easier to grasp than continuations, and easier to reason about than threads, but seem less fundamental.