A magazine about programmers, code, and society. Written by and for humans since 2018.
By Adrian Kosmaczewski, February 3rd, 2025
Welcome to the 77th issue of De Programmatica Ipsum, about the C++ programming language. In this edition, we take the risqué choice of comparing the work of Bjarne Stroustrup to that of the late film director David Lynch; in the Library section, we review "Effective C++" by Scott Meyers; and in our Vidéothèque section, we learn about programming language safety from Herb Sutter.
The work of Bjarne Stroustrup, one of the most important programming language designers of all time, has happened in parallel with that of one of the greatest filmmakers of all time, David Lynch, who passed away during the preparation of this edition. Regular readers of this magazine know that we are always eager to find analogies and synchronicities between our soulless computers and the arts, and if you think that this time it will be more of the same, follow your intuition.
C++ is under attack. Some argue that it is the language's fault, with those pointers and rules and complexity and undefined behavior, and try once and again to develop a "C++ killer" language, with various degrees of success. Others (rightfully so) defend the language (and its community) by acknowledging its history, its flaws, and proposing ways forward. The former group makes headlines in Reddit and Medium. Instead, the Vidéothèque entry of this month tells the story of a prominent member of the latter group, a certain Herb Sutter.
Around 20 years ago I found a job as a C++ developer. My new employer provided me the first day with a PDF file defining the very strict and mandatory set of guidelines to be followed for the production of code in the organization. These rules can be summarized as follows: do not use the Standard Template Library; do not use templates; and do not use multiple inheritance. If you are a C++ developer reading the previous phrase, I hope you can understand the dismay I felt while reading that. If you are not a C++ developer, suffice to say that to this day I do not understand why would anyone choose to use C++ without those features.