2020 has been mostly terrible. That includes for the C++ committee and many of our communities, where just this month we lost Beman Dawes. Beman was one of the most important and influential C++ experts in the world, and made his many contributions mostly behind the scenes. I and everyone else who has ever benefited from any of the standardized STL, Boost, C++Now, std::filesystem, C++98/11/14/17, and more — so, really, most people who have ever used C++ — all owe Beman a debt of gratitude. We miss him greatly.
To end the year with a little dose of good news, I thought I’d mention a just few positive C++ accomplishments that did happen for 2020, and were happier “first-ever” achievements.
First, the big one…
C++20 is the first ever “D&E-complete” release of C++. In February, we completed C++20, which is the first release of Standard C++ that includes every feature that Bjarne Stroustrup envisioned for C++’s evolution in his 1994 book The Design and Evolution of C++ (aka D&E), including concepts, coroutines, modules, and more, except only for one minor feature (unified function call syntax). Thank you to Bjarne for sticking with it until we got there, and personally doing the heavy lifting to drive important features like concepts into Standard C++!
C++20 is the first release of C++ that added a feature that made the standard smaller. When I talk about the importance of simplifying C++ by judiciously adding features that let programmers express their intent directly, some people legitimately object that adding a feature makes C++ bigger and more complex. I reply “but it makes C++ code simpler” and “if it replaces something more complex then we can teach a simpler C++ for new code,” but those effects have been hard to measure concretely. Now in C++20 for the first time we added a new feature that made the standard smaller: We added the C++20 spaceship operator to the language, but we also applied it throughout the C++ standard library and that made the library specification nearly 20 pages shorter — a net reduction. So for the first time we can measure that, yes, adding a feature to C++ can make C++ smaller. Thank you to everyone who helped me with that proposal and who are listed in the Acknowledgements in the link, and especially to Walter E. Brown, Jens Maurer, Barry Revzin, and David Stone!
First year for all-virtual standards meetings, including EWG and LEWG. Since March, for the first time all major subgroups including the two main design subgroups of EWG (language) and LEWG (library) have been having virtual meetings by telecon or Zoom and making progress in between face-to-face meetings. We’ve also had a record number of nearly 20 virtual subgroup meetings on average per month. It’s great to see that, despite the pandemic, the committee has continued work on C++23 and other long-pole features, and in November we were able to formally adopt the first C++23 features into our brand-new C++23 working draft. Thank you once again to JF Bastien (EWG), Bryce Lelbach (LEWG), and their assistants, and all the other subgroup chairs and participants for patiently supporting these changes that we had to invent and transition to at short notice, and as we continue to work out the kinks as we go!
Many first virtual conferences. And of course 2020 saw many of our C++ conferences hold their first virtual events (and create new ones like Pure Virtual C++), in the face of huge uncertainties and technical challenges with bleeding-edge technologies, to make it all work far more smoothly than we really would have had any right to expect on such short notice. Thank you to the organizers for working so busily behind the scenes to make it possible to have a facsimile of our face-to-face conferences until we can meet again in person!
Here’s hoping that by this time next year we will all be doing better in every way, and have a happier 2021 to reflect upon. Thank you again, everyone, for your interest in C++ and support for our many C++ events, forums, and other communities large and small, and best wishes for a great 2021.