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 synchronization al whilst working in real time. Live Coders not only run and modify our code live — they often performing 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, Sam will take a deep technical dive into the internal ideas and innovations of Sonic Pi — a system designed specifically for live coding music. The audience will explore Sonic Pi's novel temporal semantics which allows multiple concurrent threads to execute in synchronization whilst still allowing live hot-swapping of code. For example, participants will examine cue and sync, techniques which allow users to coordinate, manipulate and synchronize threads whilst they're still running and playing music. Along with Sam we will discover what it means for lambdas to close over temporal as well as a lexical scope and finally come to an understanding of the importance and challenges in achieving repeatable, deterministic execution semantics. Ultimately, everyone will discover an exciting an exciting area of programming language research in an approachable and instructive manner all whilst making some sick beats and drops. Watch a previous version of this talk: https://www.youtube.com/watch?v=YlRTTzlhquo
Sam Aaron, 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.