Bjarne Stroustrup—C++ at Forty Years: Where It's Come and Where It's Going

Bjarne Stroustrup, creator of C++, discusses its origins, goals, evolution over time, and plans for the future at the Cppcon meeting in October, 2021.

I was a fan of C++ in the 1990s, but ended up repelled by incessant instabilities in code caused by scholasticism among the developers of the G++ compiler, whose 75 line error messages when you mistyped a character in a template declaration or invocation became iconic of the hidden complexity of what was, after all, a hack erected on top of C. Stroustrup believes that with single-threaded performance of processors having reached a plateau due to the Dennard scaling theorem hitting its limits in the mid-2000s, demand for high-performance languages that let you “get close to the hardware” will remain strong. Maybe, but in my opinion that need is more likely to be met by modern languages such as Rust and Go, which can run just as fast as C++ and do not require programmers to upload tens of thousands of lines of libraries into their brains, cope with arcane syntax, or worry about dangling pointers, buffer overflows, memory leaks, and all of the rest of the sorry legacy of C which remains in C++, lurking beneath the dull and pitted surface.

Where would I like to see C++ go? Away!


Though I am motivated, I haven’t been able to find the time to learn the basics of programming. My motivation stems from my sense that writing effective code is one of the most important historical events of my lifetime and the whole exercise has passed me by; the post, with numerous terms of art and principles of processing, is thus a mystery to me. I had also tentatively planned to watch the entire series of videos on the vacuum tube computer, posted on Scanalyst. I thought it would be a way of getting a handle on understanding computer hardware. The combination of these, I still think, would offer a broad overview of the data processing revolution which has clearly changed the course of history. When I was working full-time, I was always tired. Now that I am doing that no longer, I can only say I am so busy with mundane tasks that I am now re-tired!


I have to admit that when I want to go fast, I still use C.

Most of my professional programming is Java, not chosen by me. But I’m not sure I wouldn’t make the same choice.

I rather like python for casual programming, with a dash of more complicated stuff mixed in.

1 Like

I think this YouTube series by Ben Eater is very good with regard to understanding computer hardware. Each video is about 15 minutes. Through the series he builds an 8 bit computer on a breadboard. He typically builds one component in each video.

The video linked is an example of his method. He builds a 555 timer (computer clock). In this case he shows the breadboard build and then gets down to how the circuit works.

What I like is that he starts with a functional piece that does something. It has a chip. He explains the circuit within the chip. Within the circuit is another abstraction of a circuit. He will almost always have a video explaining how the abstracted circuit works. In this first video the circuit has a comparator and a transistor. He has a video on the transistor and probably the comparator.

He eventually will get to the arithmetic logic unit, how ram works, the program counter, how the cpu is given “instructions”, assembly language, etc.