To put C++’s growth in context:
Compared to all languages: There are now more C++ developers than the #1 language had just four years ago. Compared to Rust: Each of C++, Python, and Java just added about as many developers in one year as there are Rust total developers in the world.
Whoa. That are some carefully selected numbers. It is like saying that I am earning much better money than my 16-year-old nephew (who just finished school), and that, because my job is installing and servicing coal stoves and coal stoves are still used in large part of the country, the coal stove industry is in a totally healthy state.
Hmm. Sounds like C++ is losing ground to Rust - which is much younger - fast.
Especially considering that according to the Stack Overflow surveys, young programmers tend to get into C++, but experienced developers clearly prefer Rust.
Of course, C++ isn’t going to dissppear. It will continue to be used for a long time, especially in old, mature code bases. But the same is true for COBOL. And very few new projects use COBOL. In the same way as some scholars and archeologists need to know Latin, but very few publish research or write new books in Latin - even if it was the language of science just a couple hundred years ago.
Everything Herb Sutter says about the popularity of C++ should be taken with a huge grain of salt.
This is all about:
1 - existing ecosystems (eg. tooling)
2 - existing code bases
3 - existing dev skills
It is also a trick of absolute vs relative numbers. Rust can be growing at a MUCH faster rate and still add fewer developers annually than C++.
The C++ line will go up, peak, and then go down forever (probably never to zero)
This is just like saying China is adding more coal power plants. True. But at the rate solar is growing, that will not be true for long. And once the absolute number lines cross, the old tech decline will be as steep as the new tech rise was.
Exactly. We all have learned in the pandemic that fast relative growth from a small starting value can have practical consequences very quickly. There are of course a lot of new languages that have appeared over years, and never became relevant. But a new, efficient systems language like Rust, and the fact that it is accepted for the Linux kernel is a very significant new development.
I wouldn’t be surprised at all if the guy who wrote this has been a 20 year long C++ coder. The tone feels like “NA NA NA NA NA NAAAA C++ IS THE BEST LANGUAGE EVER CAN’T HEAR ANYTHING YOU SAY NA NA NA”
disclaimer: I am not a rust user or C++, I use python and C
I am very surprised C++ is growing at all. Rust aside, I am yet to find any advantage to using C++ over C.
The choice of programming language for new projects almost always comes down to the existing ecosystem and its popularity in the space you’re working in. Some of the most popular languages also have the advantage of being deeply embedded in the academic pipelines educating newcomers to the field, which obviously includes C++. Being one of the worst choices for a first programming language to learn hasn’t stopped C++ yet and likely won’t for a long time to come.
Maybe the academic environment is different here in France, but the most taught language is still C89 here (after Python as beginner language) and C++ doesn’t seem very common.
On the OOP side, every single uni I’ve checked or been to uses Java. I really dislike Java, but I must admit it is the most appropriate language to teach OOP as far as I know.
Considering that I see more Java positions than C++ positions when searching, I’m not surprised at all.
It isn’t really. This is based on slightly implausible statistics and an unusual definition of “growing”.
I think it really depends. If you do embedded/microcontroller stuff, C/C++ is often the only alternative. That’s why I use C/C++ at least.
But I think any serious programmer uses half a dozen languages on a daily basis anyway.
A half dozen daily? All I can say is your perspective strikes me as highly industry-dependent.
A FE dev usually has JS/TS, (S)CSS, bash (for tooling scripting), often some kind of templating language, sometimes a separate language for tests (e.g. Java/Python+Selenium).
A BE dev stack that I’ve had at a few jobs so far: Java + Kotlin as the main dev languages, Groovy+Spock for tests, a templating language for emails, bash for tooling scripting, that abysmal templating language that helm charts use, SQL, Elastic, plus a few random single-purpose languages you need for some random tool in the stack.
If you do full-stack, add both together. And then add languages you need for hobby work.
On a regular day I easily hit half a dozen languages at least briefly. Maybe not as a junior dev, but after a few years in the industry, that’s not uncommon.
Unless of course you are a C# or Swift dev, then it’s totally possible to stay within your singular language-specific bubble for your whole carreer.
I do C++. And mostly, there are 2 languages daily.
C++withQML, when doing GUIC++withJSONfor DB related stuffXMLfor many other thingsXMLwithCSSfor UI, but here, theXMLpart is mostly offloaded to a GUI toool.- A few times, all 3 happen at the same time, but mostly it’s 2.
Unless you are including
CMake,qmakeandUnix Makefilesof course, but that’s not an everyday thing either.Tbh, I would classify everything you do regularly at work as your daily work.
The point remains the same: You need to know all these languages. You cannot say “I’m just doing DB stuff today, so I can totally forget QML and relearn it tomorrow when I have a GUI ticket.”
Rust for embedded targets has made rapid progress. In fact, if I want to run command-line applications on my Linux/Sailfish PDA, the easiest way is to cross-compile a Rust app.
Also, things which C was formerly used for, like writing to I/O memory registers, is easy in (unsafe) Rust. It was made for that.
Rust is also beginning to be used in satellite and space engineering.
What of course still needs to catch up is architecture support. But once gcc can compile Rust code, most relevant targets are available. Especially since one can call platform support libraries via the C ABI - and Rust can easily be called from C.
Tbh, that a good language can be used in a context doesn’t mean it’s a good choice.
Java, Python, C++, … can run in WASM and thus in a browser, but if you need anything, all examples, all libraries and everything else will be in JS/TS. Pretty much any language in existence is better than JS/TS, but hardly any language is better for browser scripting.
So for a language to really make sense to be used in a context, you need all the supporting stuff for that too.
Microsoft will add 1 million lines of Rust code per month to their repositories and replace all C/C++ code by 2030. C/C++ doesn’t stand a chance!
(At least according to LinkedIn)
I look forward to their update on how that is going in 2036.
This was obviously meant sarcastically. And the recent Microsoft post is clearly more aspirational than real. But it is much more real than you probably think.

