How should we write concurrent, reactive applications? In Go, you might say, using its abstractions for channels. Channels are a big win over old-school programming using locks, and an improvement over simple futures.
However, the epitome of elegance and functionality in concurrent programming is a mostly-forgotten system called Concurrent ML (CML) from the late 1980s. CML, despite its name, is not tied to ML and fortunately survives in a few language implementations to this day. CML programs are a singular pleasure to both read and write, and also easy to get correct. CML generalizes channels to events, making CML abstractions inherently composable.
This talk will show how you can benefit from Concurrent ML today, and look beyond to the connections to Erlang, Goroutines, and modern Reactive Programming implementations.
Michael Sperber is CEO of Active Group in Filderstadt, Germany. Mike specializes in functional programming, and has been an internationally recognized expert in the field: He has spoken at the top conferences in programming languages, authored many papers on the subject as well as several books.
Github: mikesperber
Twitter: @sperbsen