Back to proposals-2013
Title: Dataflow is the architecture you need
Proposer: russel_winder
Type: Presentation (with interaction)
Duration: 90 minutes
Description: Shared-memory multi-threading is all very well just as long as you don't do it for applications
programming. Yet we need concurrency and parallelism in our applications, and threads are the current
principal tool to provide this.
Java championed shared-memory multi-threading, but Java 8 will change that game. Groovy and GPars are
emphasizing message passing over shared-memory multi-threading. Go eschews shared memory in favour of
message passing between processes (cf. CSP). Scala emphasizes the use of actors. The C++11 standard
introduced a standard thread and memory model, apparently indicating that C++ promotes shared-memory
multi-threading as a good thing. Fortunately, asynchronous function call with futures made it into the
standard giving folk a high-level concurrency and parallelism construct.
There are implementation of actors, dataflow and CSP (communicating sequential processes) for Python,
Groovy, Scala, Java, D, Go, C++. In this session we will look at why the dataflow approach is an
improvement for programmers, and why shared-memory multi-threading is the wrong tool for the job unless you
are writing an operating system or something equivalent.
Roger: Yes
Asti - yes