Introduction

​ At CppNorth 2022 I presented a talk, The Tragedy of C++, Acts 1 & 2. I had a section in my speaker notes to explain the title but failed to read it. So here is a cleaned-up and expanded version of those notes. ​

The Tragedy of C++

​ What makes a tragedy a tragedy? It requires the protagonist to be successful, or the story is simply tragic and not a tragedy. C++ is successful. In Act One, we explored the reasons why C++ is successful in introducing our character.

In Act Two, we looked at how some of the very strengths of C++ can also be very damaging. The standards process is a crucial example. It is a key reason for C++’s success and its ever-increasing complexity and size. Another area is performance, where the dogmatic pursuit of performance in the small is preventing C++ from unlocking the hardware’s full potential. At the end of Act Two, the contradiction is hopefully apparent to the audience and the protagonist. The very traits that have made C++ successful may also bring its demise.

Act Three is not yet written. Will C++ continue on its current course, trying to fix the issues by adding more features, more pages to the standard, more libraries, and more complexity? That is the path of a tragedy. The traits that made the protagonists successful also bring their downfall because they can not see another way. The alternative is a redemption story where the protagonist realizes the only solution is a drastic change.

My hope, whatever the outcome, is that the C++ community stays intact.