It's not all that surprising to see a reference to CSP in a discussion of Go: Go is quite explicitly derived from the old Bell Labs Limbo language (and has some of the same developers). Limbo, in turn, was directly inspired by CSP (see "Bell Labs and CSP Threads" at http://swtch.com/~rsc/thread/ ). |
Of course, Limbo never got much traction outside of Bell Labs. Perhaps with the Google brand behind Go it'll... um... "go" a bit further. There does now (at last) seem to be a general acceptance in the broader software community that message-passing concurrency (either CSP-style or Erlang-like actors) is a better alternative than shared-state threads. While languages like C++ (the new C++0X standard) and Java still use shared-state, most new languages that boast concurrency support do so through some kind of message-passing scheme.
On 28/03/2010, at 2:15 PM, Marc L. Smith wrote:
Just thought I'd pass along this blog post by Dan Bravender. What begins with an implementation of MapReduce in Google's new Go programming language concludes with a reference to CSP as the theory behind languages with concurrency primitives.