“humans are quickly overwhelmed by concurrency and find it much more difficult to reason about concurrent than sequential code. Even careful people miss possible inter-leavings among even simple collections of partially ordered operations.”
- H. Sutter and J. Larus. Software and the concurrency revolution.
The fact that source code starts its life as text is part of what makes wrapping my head around concurrent programs difficult. Closure syntax like that in Rust’s
std::thread::spawn certainly help, but it still gets very tricky to keep things straight. I wonder what a non text interface for concurrent programming would look like…