The newly announced Go language set the Internet abuzz this week. I’m not going to write extensively about it, partly because I haven’t had much time to examine it in detail, and partly because other people have already written a lot about it. It is interesting to note that CHP and Go share a common heritage in Hoare and Roscoe’s CSP (Communicating Sequential Processes). I will be mentioning CSP in a couple of posts next week; CSP is a process calculus used to describe message-passing concurrent systems.
CSP inspired occam, which in turn became occam-pi (using ideas from the pi-calculus), which is still under active development. occam and occam-pi also inspired various libraries for CSP-style concurrency, such as JCSP, C++CSP, PyCSP, and many more including CHP. But CSP also inspired Newsqueak, and Rob Pike went on from that to work on Limbo and now Go which retain the CSP influence. It’s certainly nice to see other people looking at message-passing concurrency.
I did get time to glance at Go’s tutorial, and saw that they have an example for generating prime numbers using a process pipeline which uses the exact same design as my CHP primes example. So you can compare the CHP version to the Go version if you wish. (I took the design from the JCSP version; I wonder if the Go developers did too.)