Thanks for this article. I feel the goal of a tool should be to make common patterns easy to represent: so "sprinkling async everywhere" only doesn't work because of some common desirable pattern not being easily representable in modern languages and gotchas of the languages. I have a lightweight thread scheduler written in C and I communicate between threads with a lockless ringbuffer. IO threads do IO. I like the i…
The Cilk papers in particular are very very good. They discuss the programming model, the compilation strategy, the scheduling algorithms and more.
edit: this one for example http://supertech.csail.mit.edu/papers/cilk5.pdf