How replacing callbacks with core.async can make even robots get emotional

One of the issues with callback based programming is the need to coordinatemutable state among multiple callback handlers. Clojure’s core.async providesa way to write code in a more sequential style that helps make the interactionbetween multiple events clearer. This talk will briefly describe CommunicatingSequential Processes (the theoretical foundation on which core.async and otherlanguages such as go and occam are based) before giving an overview ofcore.async itself.

A lot of the attention on core.async has focussed on its use for web front-ends with clojurescript. This talk will present an application running on theJVM that demonstrates how a 3rd-party framework can be adapted to work with acore.async application in order to control a NAO humanoid robot.