How We Know C++ Is Too Complicated

Although I am a huge fan of C and have written thousands—maybe millions—of lines of C code, I’ve never warmed up to C++. Every time I’ve had to write in it, I’ve ended up muttering things like, “this is a stupid language”.

You know who else isn’t a fan? Ken Thompson. His, Rob Pike’s, and Robert Griesemer’s dislike for C++ famously led them to develop the Go language.

As part of his oral history, Thompson recounts his impetus for starting the Go project. The TL;DR is that Google’s representative to the C++ standardization committee gave an hour talk at Google about the upcoming changes to C++. Thompson says,

In my opinion, the new stuff was bigger than the language. I didn’t understand most of it. It was an hour talk that was dense on just the improvements to C++.

Did you get that? This is Ken Thompson, who Wikipedia reports is considered one of the best programmers of all time, saying that C++ had become too complicated for him to understand.

You’d think that would be the end of the story but the ankle biters in the comment section explain at length all the things Thompson, et al, got wrong and why Go isn’t a good language. Mostly those reasons boil down to the lack of some feature that the commenter thinks is essential. That’s particularly ironic given that the three originators had a strict rule that all of them had to agree on each feature. The rule was specifically to prevent the inclusion of some pet feature of one of the developers.

I have to admit that I find the comments annoying. I know all about the fallacy of appeals to authority and agree that it is a fallacy. At the same time, I think people like Thompson, Knuth, Pike, Ritchie, and others who have proven their expertise deserve our respect and that if you decide to call them out, you should realize that your opinion doesn’t count as much as theirs and it’s up to you to rigorously prove your assertions. Needless to say, none of that was apparent in the comments.

Update [2026-01-05 Mon 10:35]: Wifipedia → Wikipedia.

This entry was posted in General, Programming and tagged . Bookmark the permalink.