December 11, 2022

If we must, let’s talk about safety

How would you put a 69 meters long, 50 meters tall, 1210 tonnes ship in a museum? A boat so large and so great it sank 100 meters into her maiden voyage? Well, you can’t. But, if you really wanted to build a monument to hubris, unsound engineering requirements, and design by kingship, you could design and build a museum around the Vasa. Entombed in concrete, the Vasa will never sail again Read more

November 25, 2022

Soursop and Ponies in Kona: A C++ Committee Trip Report

Earlier this month, the C++ committee meeting had its penultimate meeting of the C++23 cycle. It was also the first in-person meeting of the C++23 cycle. This means that C++23 was mostly designed over zoom. Which, sadly, explains in part why the language side of things has been rather stagnant these past couple of years. But a lot of things happened in Kona. I forgot how intense these things were. Read more

September 20, 2020

What is the standard Library?

DISCLAIMER The following represent my opinions, not that of the C++ committee (WG21), any of its members or any other person mentioned in this article. I think the most fundamental work done by WG21 is trying to answer meta-questions about itself. What is C++, what is its essence, what should we focus on? How to evolve a language with a growing community, a growing committee? A language that is deployed on billions of devices, with an estimated 50 billions actively maintained lines of code. Read more

August 30, 2020

The problem with C

In the early 70s, C was created at Bell Labs as a byproduct of the development of UNIX. It quickly became one of the most popular programming languages. But it was not expressive enough for Bjarne Stroustrup. And so, in 1983, as a byproduct of his Ph.D. thesis, he extended C. C with classes was born. At the time, Bjarne Stroustrup understood that a programming language has many components, not only the language, its compiler, but also a linker and libraries. Read more

August 23, 2020

Standard library development made easy with C++20

When he created Go as a knee-jerk Reaction to C++11, Rob Pike proclaimed Less is exponentially more. While it is anyone’s guess what that is supposed to mean, in this blog post we will see how C++20 is less verbose, yet more expressive than prior C++ versions. I am a big fan of concepts-driven designs. The use of concepts leads to less coupled, more generic interfaces that work with more types. Read more