Strange Loop

Beating Threads - live coding with real time

Live Coding systems encourage us to think extremely differently about programming languages. In addition to considering standard requirements such as reliability, efficiency and correctness we are also forced to deal with issues such as liveness, coordination and synchronisation all whilst working in real time. Live Coders not only run and modify our code live - we often perform with it live on stage in front of large crowds of people who really don't want the code to miss a beat.

In this code and demo-heavy talk we will take a deep technical dive into the internal ideas and innovations of Sonic Pi - a system designed specifically for live coding. We will explore Sonic Pi's novel temporal semantics which allow multiple concurrent threads to execute in synchronisation whilst still allowing live hot-swapping of code. For example, we will examine cue and sync, techniques which allow users to coordinate, manipulate and synchronise threads whilst they're still running. We will discover what it means for lambdas to close over temporal as well as lexical scope and finally we'll understand the importance and challenges in achieving repeatable, deterministic execution semantics.

Ultimately, we will uncover an exciting area of programming language research in an approachable and instructive manner all whilst making some sick beats and drops.

Sam Aaron

Sam Aaron

The University of Cambridge

Sam is a live coder who strongly believes in the importance of emphasising, exploring and celebrating creativity within all aspects of programming. He is the lead developer of Overtone and the creator of Sonic Pi, a music live coding environment used to teach programming within schools. By day Sam is a Postdoc Research Associate at the University of Cambridge Computer Laboratory and by night he codes music for people to dance to.