Teaching an Old Dog New Tricks: A Tale of Two Emulators

Matt Godbolt

⏱ 90 minute keynote
beginner
intermediate
advanced
16:30-18:00, Friday, 4th April 2025
As a self-proclaimed C++ dinosaur, I set out to prove that my comfortable, battle-tested ways of writing code (somewhere between C++11 and C++14) were clearly superior to all this modern constexpr-everything, coroutine-laden C++.

What better way to demonstrate this than by implementing the same ZX Spectrum emulator twice - once in familiar C++11 style, and once with all the shiny new features that folks these days seem to love?

Through practical examples and live demonstrations, we'll explore how modern C++ features transform - for better or worse - our approach to systems programming. Watch as my preconceptions about template metaprogramming, coroutines, and modules are challenged, and discover where modern features genuinely shine... and where they might just be showing off.

Whether you're another comfortable old dinosaur curious about modern C++, or a new grad wondering why some of us still write for loops instead of using std::ranges, you'll come away with concrete examples of how modern features apply to traditional problems. And perhaps, like me, you'll learn that teaching an old dog new tricks isn't always painful - sometimes it's just enlightening.

Matt Godbolt

Matt Godbolt is a C++ developer with a passion for striking the balance between readable, maintainable code and high-performance solutions. He is fascinated by looking under the hood, whether that's exploring the inner workings of compilers, operating systems, or even the silicon powering our devices.

Matt usually applies his expertise in C++ to write software for the finance industry, but is on a break right now. He's pursuing a range of hobby projects, from emulating vintage computers in the browser and building embedded systems to developing and maintaining the Compiler Explorer website.