This piece seems to have predicted a very active field in everyday software development since then.<p>What are the alternative paradigms that have actually become common use? Coroutines, async/await, that's what I hear about online but what are others? I've seen people who touted zmq-communicating-processes with standard patterns as the solution to all problems, and I'm happy not to have to maintain the results.<p>Have we effectively “solved” the concurrency problem, and if so what's left as an exercise for the future?