On Monday, 31 March 2014 at 09:18:08 UTC, Russel Winder wrote:
On Sun, 2014-03-30 at 16:01 +0200, Paulo Pinto wrote:
[…]
They are quite interesting to follow, given some of the more opinionated long time community members.

For those not following golang-nuts, the above is a wonderfully
understated comment. This is very much the English/Stephen Fry use of
the term "quite interesting" :-)

Sometimes I wonder if anyone would care, if the language wasn't sponsored by Google.

Actually yes. Though perhaps it would not have been so widely, nor would the traction have been so high and so fast. The point here is that Rob
Pike has been working on message passing languages for decades:
Newsqueak, Alef, Limbo,… and Go is the breakthrough of this sequence into the mainstream. For those of us who have been working on message passing systems, Go represents a very important language since it brings
processes and channels based message passing to the masses (of
programmers).

It is abundantly clear that shared-memory multi-threading is an
operating system and infrastructure technique along with locks,
monitors, semaphores, etc. and has been since the 1970s. The Java community are just beginning to wake up to this, pushed by Scala folk and the fact that Doug Lea, Brian Goetz and a host of others' work is
finally getting proper recognition, not least in Java 8.

Actors have sort of become a bit popular as an asynchronous process and message passing technique, but it is just one of many concurrency and parallelism architectures, the two most obvious of which are dataflow and Communicating Sequential Processes (CSP) – Go's system is a kind of variation on CSP. And then there is data parallelism. D sort of has actors. D's data parallelism is unsophisticated compared to that of Java 8. Go, PyCSP, Python-CSP, JCSP and GroovyCSP are the only even part-way known about CSP implementations. DataRush and Groovy are the only part
way known about dataflow systems.

I pushed Anthony Williams to get an actors and dataflow library for C++, and this is progressing nicely, albeit a bit slowly. Hopefully it will
get into Boost.

The question for D is whether Go has already beaten D simply because of goroutines. Sadly I have to say yes. As do Google and Canonical, though they are probably not sad about it, they are just getting on with
implementing lots of systems in Go.

Whether Rust turns into a "disturbance in the C/C++/D/Go force", we
shall see.

Syntax notwithstanding, do you see any reason why goroutine-style CSP couldn't be implemented as a library in D?

I know little about this area but at a brief glance it doesn't seem a particularly difficult problem.

Reply via email to