Select Page

This is an interview with Nicolai Josuttis about how the C++ standardization process has changed over the years.

You can find more information about Nicolai at his website http://www.josuttis.com

I first came to know about Nicolai through his book “The C++ Standard Library – A Tutorial and Reference” and recently started reading his new book “C++ 17 – The Complete Guide”

If you’d like to improve your coding skills and deepen your knowledge too, then browse the recommended books and resources at the Resources page. You can find all my favorite books and resources at this page to help you create better software designs. I keep copies of Nicolai’s books within reach at home because I keep coming back to them. His new book is already proving just as useful.

Even after programming for 30 years, I learned something new within the first 5 minutes of reading Nicolai’s new book! That’s the type of value you’ll get from his books and talks.

Listen to the episode for more details or read the summary below.

Summary

Nicolai Josuttis has been involved in all the standards since about 1996. He talks about a time in the beginning when the chief architect, Bjarne Stroustrup, along with a few others could make decisions. There were no laptops, no internet, and no HTML. The early standards meetings were done with paper and Andrew Koenig would run samples on a PDP-11 to try things out.

The Java language actually helped because a lot of people left C++ who were more interested in politics. Only the most committed remained. I had never thought about it like this but it makes sense.

The standardization committee started with a core language group and a library group. Now we have a core group and a core evolution group and a library group and a library evolution group. In addition to these four main groups, there’s enough other groups to need 10 different parallel tracks for the meetings.

The language changed a lot with C++11 and both Nicolai and I came back to the language.

C++ is in many ways a victim of its own success.

It’s not possible for any one person to understand everything. This leads to problems because there are no generalists who can see everything. We make more mistakes such as mutexes and locks. We now have many different solutions. We couldn’t change the lock classes to use templates and had to introduce a new class with variatic arguments and now we have 3 different lock classes.

We also can’t consolidate because of backward compatibility. We now have 40 years of backward compatibility.

It’s not all problems though. Nicolai is most excited about having a new generation getting involved. There’s a lot of young people that make a good mix. It’s a good sign.

CppCon is an amazing conference that gives people access to other people that can help you.

We are a C++ community.

Working with 200 people in the standardization committee is a good example of dealing effectively with people. If there’s a mistake or a bug in the standard, just remember, that you might have been able to prevent it by getting involved. So please help contribute.