It seems like the key to writing current code is to abandon the idea of understanding how to construct a concurrent architecture and to figure out how to adopt a pattern concurrent which provides certain guarantees. Often it is something baked into the language, but frequently it is a library. This is one of the reasons I'm so thrilled with Clojure.
1) Because it has STM baked in and there is a core library for CSP.
2) Because it is a lisp so adding foreign syntax is as simple as a library and doesn't need to be a language extension.