The History of Concurrency

Accepted Session
Short Form
Scheduled: Thursday, June 23, 2011 from 11:00 – 11:45am in B302/03


With node.js brining callbacks back into fashion and new languages like Go baking concurrency primitives directly into the language syntax, it can be difficult to keep straight what different concurrency approaches offer, what their shortcomings are, and what inspired them.


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 traditional Thread interfaces offer, were a part of Unix’s first release in 1969.

This talk aims to present a historical context for all of the “new” concurrency models and attempt to peer into the future to see how existing concurrency paradigms will serve hackers in a massively multicore future.

Speaking experience


  • Schmichael 2009.05.21

    Michael Schurter

    Urban Airship


    Michael Schurter is a Python developer at Urban Airship in Portland. He spends his days hacking Django, databases of both the relational and non-relational kind, and a bunch of other fun technologies while trying to get outside and away from technology as often as possible.

    He’s an active member in the Portland Python User Group and started the Update Portland meetup as a technology-agnostic forum for people to share their experiences with database, queues, and other data plumbing.