Keynote: Optimizing for Change
We know that change, whether continuous or punctuated, is just about the only thing we can rely on. Software is thought-stuff; it's supposed to be malleable, but all too often it turns out to be constrained in ways that hinder change. At all levels of writing code - from in-the-small concerns like type selection to structural patterns of interacting processes - we decide, often unknowingly, to be more or less change-sympathetic. But the ability to deal with and even optimize for change is perhaps the most important factor in keeping software healthy and useful over time. This talk looks at some specific techniques in C++ and some general principles to keep in mind to retain and improve the robustness and flexibility of code.
Ben has been programming in C++ for this whole millennium. He spent just over 20 years in the games industry working for companies like EA and Blizzard; many of the games he worked on used to be fondly remembered but now he’s accepted that they are probably mostly forgotten. After getting more interested in modern C++, in the teens he started giving internal company talks and then talks at various conferences, spreading ideas about types, algorithms and declarative and functional techniques.
In 2018 he left the games industry and worked in finance for a short spell, writing high-frequency trading platforms using the most modern C++ that compilers could support. Now he is a Principal Engineer at Intel where he puts monads inside your CPU.