History of Concurrency

Accepted Session
Short Form
Scheduled: Wednesday, June 25, 2014 from 4:45 – 5:30pm in B201


With new languages like Dart, Go, and Rust coming with powerful concurrency primitives (and languages like C# & Java adding more concurrency features), it's important to know where these ideas come from and where concurrency handling is headed.


Whether it’s node.js, goroutines in Go, gevent/eventlet in Python, Rubinius’s hydra branch for Ruby, Akka for the JVM, or async primitives for C# 5.0, concurrency is a hot topic.

It’s too easy to forget that coroutines were first defined in a 1963 paper and that preemptive multitasking, like modern operating system processes and threads, were a part of UNIX’s predecessors in 1962 and 1963: LEO III and Multics.

This talk aims to place new languages and platforms in their proper historical context but point out novel new approaches to concurrency.



Speaking experience

This is an updated version of a talk I gave at OSBridge in 2011 and more recently at PDXNode. I've also talked at OSBridge on MongoDB and at PDX Python on a variety of topics.