C++: The Documentary (herbsutter.com)
300 points by ingve 13 hours ago
garyrob an hour ago
For what it's worth:
I had an idea for a special reminder app I wanted for myself. It's complicated enough that it comes to 9,000+ lines of code. I wanted to write it using the C++ UI library wxWidgets, because I like that wxWidgets uses native widgets, and is cross-platform, and that it's easy to make an app look nice. And that it doesn't use tons of memory.
There's a wxPython library, but I didn't want my UI to be limited due to whatever gaps may exist in that wrapper.
So I had AI write it in C++. Took about a day for me to get it done. It's perfectly solid. It did hit a couple of memory errors when I first used it, but I could give the AI MacOS crash report and the AI fixed the bugs easily, with no other involvement from me. (I compiled in a debug-friendly mode; no downside to that because it was just for me and was plenty fast enough.)
25 years or so ago, I was a fairly good C++ programmer. Haven't touched it since. And that includes this application, which was completely AI-written.
gverrilla 27 minutes ago
Hey I'm curious on how your reminder app works and to what effects, if you're willing to share. I'm on iteration 3 already of my reminder app, also vibe coded, and it helps me a lot. My first one was inspired on Remind [0].
mirmor23 4 hours ago
Ken Thompson's criticism of C++ as incoherent, complex and garbage heap of ideas still resonates with me; C++98 was the last version I used for work although I've dabbled in 11/17/20 out of curiosity.
IMO, if c++/cfront didn't ride on the tails of c, I'm skeptical it would've seen widespread use, but then, that's its main identity which limited it in ways that C++ was not willing to change; It is highly irritating to spend as much time to sanitize the implementation with Coverity/Valgrind and the ilk when the compiler could've handled it.
With C++98, Bjarne's book on c++ internals could've give you good insight into what went on, but later it turned into a whole cottage industry of "effective, more effective, proficient, performant, c++" series of books -- so kiss goodbye to any notion of being able comprehend existing code that's not written by you (until llms arrived). I'm happy to have spent time to learn problem domain instead.
I'll still watch the documentary since it has some of my favorite folks (Kernighan, Stepanov).
WalterBright 2 minutes ago
> if c++/cfront didn't ride on the tails of c, I'm skeptical it would've seen widespread use
What launched C++ into success was Zortech C++. At the time, 90% of programming was done on MS-DOS. Cfront was nearly unusable on DOS, because:
1. agonizingly slow to compile
2. no support for near/far pointers, which was essential for non-trivial apps
Zortech C++ fixed those problems, and sold like wildfire. This provided critical mass for C++ to succeed.
andrewl-hn 2 hours ago
Something that not many people consider. It is almost certain that C++ "saved" C by existing. Without C++ there would be an enormous pressure to add more features to C itself. One reason why C committee could get away without adding much over the years was that they could nod towards C++ and say "that's their job, not ours". And if later didn't exist who knows what kind of language C would become. Classes? Templates? Lambdas? We can only speculate.
Maxatar an hour ago
I don't know if this is true. In the 80s there were many languages that were C with additional features or C preprocessors that added and experimented with features similar to cfront. You had OOPC (object-oriented pre-compiler), Objective-C, C*, Concurrent-C. People were experimenting in all kinds of ways by taking C and trying things out with it.
foobar1274278 2 hours ago
Hilarious coming from the guy whose shitty Multics ripoff directly inspired "Worse is Better"
From the essay:
"Unix and C are the ultimate computer viruses.
A further benefit of the worse-is-better philosophy is that the programmer is conditioned to sacrifice some safety, convenience, and hassle to get good performance and modest resource use. Programs written using the New Jersey approach will work well both in small machines and large ones, and the code will be portable because it is written on top of a virus.
It is important to remember that the initial virus has to be basically good. If so, the viral spread is assured as long as it is portable. Once the virus has spread, there will be pressure to improve it, possibly by increasing its functionality closer to 90%, but users have already been conditioned to accept worse than the right thing. Therefore, the worse-is-better software first will gain acceptance, second will condition its users to expect less, and third will be improved to a point that is almost the right thing. In concrete terms, even though Lisp compilers in 1987 were about as good as C compilers, there are many more compiler experts who want to make C compilers better than want to make Lisp compilers better.
The good news is that in 1995 we will have a good operating system and programming language; the bad news is that they will be Unix and C++."
72deluxe 3 hours ago
But C++98 is so different to even C++11. Bjarne's book covering C++11 read completely differently to the 98 version, I found.
jmalicki an hour ago
That just adds to the incoherency.
It's why I've found Rust a joy - enough had happened in programming languages, that it was able to reinvent C++ with some of the best parts of the Haskell/ML/Scala family, some of the ergonomics of Python/nodejs, and bringing the borrow checker too.
C++ is this weird amalgam of like 7 different generations of languages.
But by far the worst part is the developer hostility behind the idea of UB. "Oh, this is not an error, it will compile, we will just secretly stab you in the back."
You can get good and avoid it, and there are tools to help you, but why is that at all a reasonable stance for the definition of a language?
jeffbee an hour ago
aozgaa 2 hours ago
> kiss goodbye to any notion of being able comprehend existing code that's not written by you (until llms arrived).
In my experience it takes a while (<=3 months) for folks to become proficient when they see an alien dialect of c++. That may sound totally unacceptable to you (fair). Cpp is also a “big tent” language in that it is genuinely multi-paradigm.
I think LLM’s might help, but sometime they hurt too (confidently/persuasively wrong analyses). The gain is large for small/trivial contributions. For changes that require genuine understanding, I’m not sure (large error bars personally as to whether the sign is even positive).
0xpgm 2 hours ago
I highly respect the Ken Thompson and the rest of the old UNIX hands, but wouldn't they admit that the real world is messy and the best solutions in isolation don't always win?
Their creation C and UNIX won over the more advanced LISP and Smalltalk systems because they were simpler to implement. Even their own more advanced Plan 9 based OSs could not displace the more widespread unix-like systems.
It seems distribution and 'good enough' to rely on always wins. IMO, dynamic languages like Perl, Python, Ruby, JavaScript, PHP and the heavily marketed Java provided good enough high level facilities that have prevented people from reaching for Lisp and Smalltalk.
Looking at it through this lens, perhaps C++ was the vehicle for strapping some high level facilities on a widely adopted low level performant language that made it just good enough of a technology for wide adoption.
doug_durham 2 hours ago
You think that LISP and Smalltalk aren't widely used is because they weren't easy to implement in the late 1980's? There have been many languages that have risen to prominence in the 40 years since, yet LISP and Smalltalk remain niche languages.
skydhash 38 minutes ago
pjmlp 2 hours ago
UNIX founders never liked C++ that much, note how Plan 9 and Inferno only have C as the systems language, with the Alef experiment, and later Limbo.
Followed a couple of years later contribution to Go's design, exactly to avoid C++ at Google.
socalgal2 25 minutes ago
C++ needs to die. I get so many people are invested in it and so much code is written in it. I used to be a fan and it's still my main job. But, in 2026 with LLMs able to find all the exploits, and with more and more adversarials, we need a language that is opt-out of safety, not C++ which is opt-in + super vigilance to get safety. It doesn't work and decades of experience proves it.
Matheus28 9 minutes ago
And replace it with what?
bdamm 10 hours ago
Since I've been working in C++ a lot recently I decided to watch the video as I waited for a build to complete. So the length is about right. And fortunately, the video is a delight!
zeafoamrun 10 hours ago
I have read as much as I can on the history of C++ and I'm looking forward to watch this. I find the process of it's evolution deeply fascinating.
tonyedgecombe 8 hours ago
I feel drawn to watch it in the same way I was drawn to watch Breaking Bad.
abcd_f 3 hours ago
> the process of it's (sic) evolution deeply fascinating.
... as it is disappointing.
Not everything that can be done should be done.
stackghost 2 hours ago
Wow is this just a shitpost (it was funny!) or do your builds actually take about an hour? That's nuts, if so.
wavemode an hour ago
A fresh build of a large C++ project taking 1 hour does not sound strange at all.
If that's an incremental build though (i.e. simply rebuilding after changing a few files), there's something very wrong.
darknavi an hour ago
tenderfault 9 hours ago
So happy to see Andrei Alexandrescu was included in this documentary. His book on modern C++ design was a mind opener at the time I read it. Maybe still is today. Anybody else read it?
usefulcat 3 hours ago
His talks are some of my favorites; he's a great speaker. Very engaging and has a great sense of humor, which he uses to great effect.
mwigdahl 3 hours ago
Agreed, _Modern C++ Design_ is probably the programming book I've gotten the most out of in my career.
hcrisp 5 hours ago
I read it recently. I liked a few of the chapters especially how policy classes fix some issues with OO design. I do recommend asking an AI chatbot to summarize each chapter and say what the modern equivalent is since some of the idioms have improved. I think one whole section was obsoleted through the use of std::variant and std::visit.
W0lf 8 hours ago
Yes, I feel the same way. I met Andrei once on a Meetup in Munich, basically telling him that he taught me how to think which led to a somewhat awkward conversion. Fun times nonetheless :-)
tenderfault 8 hours ago
1. Find your hero
2. Meet your hero
3. Start an awkward conversation with your hero.
It always goes like this no matter what you try.
pjmlp 2 hours ago
Of course, all his books are a must read.
timedude 14 minutes ago
With great power comes great responsibility and blown off legs.
GodelNumbering 8 hours ago
Personal opinion: C++ is the most elegant language I have used (for about 15 years). If you are the 'systemizer' type and like to have an extremely precise mental model of the thing you write down to the last bit, nothing beats C++. I acknowledge the limitations and uncertainties that come from compilers etc, but still
dbdr 7 hours ago
> If you are the 'systemizer' type and like to have an extremely precise mental model of the thing you write down to the last bit, nothing beats C++.
I would say the same thing of Rust.
dysoco 3 hours ago
I very much prefer to work in Rust but it does force you to design things in an counter-intuitive way in certain situations (linked lists for the canonical example). Specially for lower level software I find C or C++ to allow for much more flexibility and thus the most straightforward design possible.
kibwen 4 hours ago
An elegant language is one that achieves a lot with very little. Forth and Scheme are elegant languages. You're free to like working in C++, and you can sure achieve a lot with it, but I don't think it's controversial to say that it does not do so with very little.
GodelNumbering 4 hours ago
Makes sense. This appears to be also a symptom of whatever you work on most (or start with), your brain starts to absorb that into its way of thinking.
jdw64 10 hours ago
It's surprising that C++'s development trend continues.
When a game or program is made with C++, it's usually nice because performance is mostly guaranteed. But if someone told me to write C++ myself, I'd cry. There's too much to memorize, and the standards are too varied. When I go to a project site for maintenance and it's a C++ project, I instantly lose energy — because it's just too difficult.
I'd be happy if someone else wrote it, but it's not a language I want to write myself
bayindirh 10 hours ago
Personally I don't find programming with C++ that hard. The downside is it needs a brain warm-up, and this is per project, but once that flywheel is spinning, I find it almost effortless to write code.
I have to go through the same warm-up more or less for any language I work with, so it's not that different than writing Python, Go or Java for me.
rustyhancock 8 hours ago
I agree.
You don't learn or know C++ in the way you learn or know C.
You never have the total language spec in mind. Much of it you will never (and for some of it should never) come across.
The way I think of it
C is an abstraction of the machine, so thin it's nearly transparent.
C++ is an abstraction over programming paradigms, letting you pick how you think.
Everything else abstracts the machine away, replacing it with a VM, runtime, or model of its own.
The same way a good project has a clear model of the problem it should have a clear C++ pattern in use.
techbrovanguard 2 hours ago
whstl 8 hours ago
I find C++ not hard at all when working with familiar idioms, restrictions and toolings (familiar to me). But it's hard jumping into new codebases and adjusting yourself to new patterns. Recently I did a lot of programming using C++23 Modules and it was a breeze.
There's basically dozens of very nice languages inside C++. That can be a blessing or a curse.
I'm anxious for Herb Sutter's CPP2/CPPFront to become a standard.
tialaramex 8 hours ago
domenicd 8 hours ago
avadodin 8 hours ago
drysine 5 hours ago
jdw64 10 hours ago
There are so many standards and idioms that it gets confusing. There are still legacy codebases out there — some codebase still use C++98 as their standard, others use C++11... And with Unreal Engine, the modern C++ standard is C++14, right? There are things like smart pointers, but some places don't even use them. I feel like there are just too many features. When I saw template metaprogramming — that new feature — I realized I have no talent for C++.
bayindirh 10 hours ago
maccard 9 hours ago
flohofwoe 9 hours ago
justin66 4 hours ago
lelanthran 9 hours ago
> The downside is it needs a brain warm-up, and this is per project, but once that flywheel is spinning, I find it almost effortless to write code.
How is that different from other languages, which don't need the brain warm-up?
bayindirh 9 hours ago
flohofwoe 9 hours ago
For games, C++ becomes a much simpler language since game code bases usually ignore the C++ stdlib (at least mostly, and for good reasons, e.g. see [0]). And without the stdlib C++ is actually kinda-sorta okay-ish.
Related, the main problem with the C++ ecosystem is that everybody carves out their own language subset, so it's not one ecosystem but many ecosystems with contradicting styles and language/stdlib subsets. This makes code reuse via libraries much harder than it should be.
[0] https://hftuniversity.com/post/the-c-standard-library-has-be...
herr_shield 9 hours ago
I fully agree. In my personal project, I ended up using the STL to get off the ground, but in the end I replaced pretty much everything with custom-written code.
Once you get rid of the STL, compile times get so much better. With modern c++23 features, templates actually become really convenient to write, and at the core there is a really useful and pleasant to use language.
I try to avoid c++ libraries and instead rely on c-style APIs. Usually the c++ style libraries force you into using the STL, which comes with a heavy tax on compile times, without much benefit in comfort of use.
GnarfGnarf 7 hours ago
jibal 7 hours ago
Your citation refers to the register keyword and trigraphs, among other language features -- the author seems to have forgotten his own point, among a number of other inconsistencies and contradictions, and at times seems to go out of his way to come across as a jerk, e.g., "This is what fifteen years of standards work on an eight-letter keyword looks like".
People love to rag on the standards committee. I was on X3J11, the C Language Standards Committee, in 1989 ... in fact, due to alphabetical order I was the first person on the planet to vote to approve the C language standard -- the one that first standardized register and trigraphs. Standards work is hard and everyone hates you for it.
flohofwoe 4 hours ago
samiv 9 hours ago
If you don't use the STL you end up re-implementing it yourself. Usually poorly.
flohofwoe 9 hours ago
variadix an hour ago
mixolydianagain 9 hours ago
VoidWarranty 9 hours ago
leonidasrup 9 hours ago
Chaosvex 9 hours ago
That article probably isn't the best source to cite. You can look at the discussions on it elsewhere, although I'd just dismiss it as slop.
The standard library is mostly fine to use unless you have specific needs.
The bit about libraries is nonsense, sorry.
flohofwoe 9 hours ago
randusername 3 hours ago
One of my hobbies is rummaging around thrift stores appreciating tacky things from bygone eras, sifting through ill-conceived modern junk, and delighting in simple, solid tools where I can find them.
That's what it's like to be a C++ programmer.
samiv 9 hours ago
You're right that C++ has a lot of features. But like mentioned elsewhere most projects define their own conventions and the subset of features that they use.
Also the nice thing about having a large set of features is that C,++ allows you to write very nice abstractions (or not) at both very low or at very high level. In other words you can be very low level with online ASM and bit operations and bit and direct memory manipulation or very high level almost like a script language. Whatever the problem domain needs C++ has got you covered.
zerr 9 hours ago
You can be pretty productive even with 70% of the language :) It is a common misconception that C++ is suitable only for game engines and similar domains. It is perfectly fine for applications domain as well.
As a side note, regarding your profile info, unless you are based in North Korea, please at least add one 0 to your rate. You'll get more long-term and high-quality clientele.
fc417fc802 8 hours ago
> You can be pretty productive even with 70% of the language
Or even far less than that. I like to use it as C with lambdas and namespaces. Sprinkle in metaprogramming as needed. Even just not having to remember to call cleanup code thanks to dtors would alone be enough to sell me on it.
pjmlp 8 hours ago
Only by people that started working in Web during the 2000's.
Back in the 90's, it was the main business language alongside Smalltalk, Delphi and VB.
Hence the plethora of C++ frameworks to chose from, sadly most dead since .NET and Java took over most of the use cases.
jdw64 9 hours ago
Honestly, I don't expect to find clients here. Fundamentally, you have to trust me to give me work. The amount of money doesn't really matter much to me.
zerr 9 hours ago
kllrnohj 2 hours ago
> But if someone told me to write C++ myself, I'd cry. There's too much to memorize, and the standards are too varied
If someone tells you to write a web app, do you also cry? Surely there's more JavaScript frameworks than subsets of C++ at this point, no? Do you also go memorize all of them? Or do you just quickly pick one, and then only learn that one, and forget the rest exist? Because that's kinda how you approach C++. You pick a subset (like, say, just modern C++, only caring about C++17 & later or whatever), and just use that. And move on with your life. There's absolutely no reason to learn how std::auto_ptr works because it's dead in the same way you aren't learning how PHP & CGI works if you're making a modern web app. They're dead relics of the past that you can just pretend don't exist.
pjmlp 8 hours ago
Not really, despite all its warts, it is exactly because of them that many reach out to C++.
Many of us don't like C, it was already too little and too unsafe, when the first C++ compilers started to hit the market in early 1990's, hence why all desktop OSes moved into C++ for their frameworks.
The return to C has caused by the rise of FOSS, UNIX winning the server room, and early GNU coding standards to use only C as main compiled language.
Additionally as many other programming language ecosystems have discovered, it is easy to beat C++ in version 1.0, and eventually all of them grow to get the complexity of their own.
I reach for C++, because the language runtimes, compiler tooling, and GPGPU frameworks I care about are partially written in C++, and I am not in the place to be writing new ecosystems myself.
bregma 4 hours ago
I work maintaining the toolchain and language runtimes for a commercial safety-certified embedded operating system. I am deeply familiar with C and C++ because I live it and breathe it every day and have done so for over 40 years.
Most of our customers use C, probably for historic reasons but also because it is much much easier to reason about and that becomes very important when auditing for functional safety certification. If someone's life depends on your software, you really want to be able to reason about its correctness because orange jumpsuits enhance no one's complexion.
Many of customers are now using C++. From the problems they have reported, well, they just shouldn't. It's not that it is a bad language (it isn't) or that it is inherently unsafe (it really isn't: exceptions are safer than propagating return values as long as you use them in exception conditions, because not catching one will return you to a designed safe state very quickly, and RAII is the best thing since sliced cheese). It's that cutting and pasting from Stack Overflow, and now vibe coding, makes for massive codebases that are next to impossible to reason about. I now see a lot of problems from customers where my first reaction is "don't write code like that" and "you can write bad JavaScript code in any language, can't you?". While it butters my bread and I enjoy the language, I really recommend against using C++ for safety-certified embedded software. Stick to C.
pjmlp 3 hours ago
kllrnohj 2 hours ago
marcosdumay 2 hours ago
The return to C was caused by other languages taking over every niche where C++ is better suited than C.
There isn't even much of a "return" there. In fact, AFAIK, C++ expanded over C the entire time.
tenderfault 9 hours ago
funny, I think the same about rust.
tialaramex 7 hours ago
(Safe) Rust is a lot better about the "Pit of Success" design than C++
There are fundamental technical choices to deliver that, but also ergonomic things like notice Rust's []::sort is a stable sort, whereas C++ std::sort is an unstable sort. If you don't know about sort stability in Rust what you wrote works and in C++ you get a nasty surprise.
bregma 4 hours ago
nnevatie 10 hours ago
The language is fine, mostly, nowadays.
The ecosystem isn't fine - just to get a project going requires picking a non-trivial set of tools and approaches, none of which the C++ standard enforces or guides to.
For example, will you manage dependencies via packages? If so, with what? What will you use for building your project? The list goes on and on.
Davidbrcz 9 hours ago
No it's not.
The language keeps growing, with
- new features overlapping old features from previous standards without replacing them or deprecating them (function::copyable_function vs std::function, std::less<> key for transparent lookup in maps)
- new features not usable by the layman (coroutines ...)
- Cryptic syntax (reflection...)
- Stuff you are told not to use because of performance reason and that cant be fixed because of ABI (regex)
- Compile errors that are 1km long (no, concepts are not helping here, the 'nicer' message is still buried into a hot pile of template instantiation callstack).
bayindirh 8 hours ago
pjmlp 8 hours ago
bayindirh 10 hours ago
I personally find the lack of native package management in C++ as a blessing. Go, Python, Rust has it, and this always causes pulling in infinite number of packages for any trivial operation.
sudo-rs was pulling in 1M+ LOC as its dependency chain at one point. I believe they removed the biggest offenders, but I didn't check it recently.
nnevatie 9 hours ago
logicchains 9 hours ago
>There's too much to memorize, and the standards are too varied. When I go to a project site for maintenance and it's a C++ project, I instantly lose energy — because it's just too difficult.
If you'd already been using it for 10+ years you wouldn't feel that way, because you'd already have memorized a lot of it.
Davidbrcz 9 hours ago
Except the language keeps growing, with
- new features overlapping old features previous standards without replacing them or deprecating them. - new features not usable by the layman - ...
See function::copyable_function vs std::function, modules, coroutines, Reflection syntax is cryptic at best, ...
VoidWarranty 9 hours ago
TonyAlicea10 6 hours ago
I always tell web developers I teach that the language of the internet isn’t JavaScript it’s C++.
Web devs are just users playing in a C++ dev’s program. ;)
ivanjermakov 8 minutes ago
Continuing the analogy, browser devs are just users playing in C/OS/kernel program.
criddell 4 hours ago
I tend to think of the web and the internet as distinct things.
For the language of the web I'd probably nominate HTML.
For the language of the internet it's a lot less clear to me.
TonyAlicea10 3 hours ago
Many browser rendering engines are built in C++, so C++ is parsing the HTML. My general point is that many web/internet techs that web devs interact with have C++ one abstraction level below for actual implementation.
irishcoffee 3 hours ago
neals 7 hours ago
I love a free documentary about something that I'm passionate about. So many thanks.
However, I'm a my own kind of weird. I cannot watch a documentary that's made out of people saying short sentences. I get that it's made to 'have them tell the story', but I need a narrator to tell me what to think because I get distracted.
Still lots of love to the creators, of course.
Tomte 10 hours ago
I‘m out of the loop: we‘ve had Python, Clojure and possibly something else recently. Is that a series by the same people working through several languages? Is it happenstance? Is it a trend, and every programming language is now scrambling to get their own video documentary?
spacechild1 7 hours ago
Yes, these are the same people: https://www.cultrepo.com/
Apparently, they are making documentaries about open source software.
Tomte 6 hours ago
That‘s cool, since it establishes a brand. If one was done well, the others probably are, too, so even if it‘s not your language of choice, it will be interesting.
orsenthil 3 hours ago
I haven't watched this yet. With all due respect, why John Romero instead of John Carmack for a C++ documentary ?
martinky24 3 hours ago
A documentary can't always get who they want to get.
melenaboija 2 hours ago
I obviously don’t know them personally, but what I get from this old school generation that have been a pillar of computer science and, why not, modern human history, is just a tiny little bit more humbleness than “influential” people nowadays.
Maxatar 2 hours ago
They may be humble in their older age but the good majority of people on the list were known for anything but their humbleness back when C++ was a much more dominant language.
stackghost 2 hours ago
Using "humble" to describe a list of folks that include John Romero is certainly an interesting choice of adjective.
swader999 6 hours ago
I'm going to rent the local cinema and invite all my normal friends and family for this. About time they watch something decent.
i_am_a_peasant 9 hours ago
My only problem with C++ is that it’s too verbose. my eyes need to parse huuge chunks of things when I just want some convenient syntax for it. otherwise the idioms are pretty universal for most programming languages nowadays.
spacechild1 2 hours ago
Interesting, I don't find modern C++ verbose at all. 'auto', range-based for-loops and structured bindings did a great job at reducing the verbosity of C++98.
On top of that, C++ allows to design very concise APIs. (One of my favorite examples is sol2: https://github.com/ThePhd/sol2).
Library code involving templates, on the other hand, can be pretty complex and hard to read. Concepts and other C++20 features (like [[no_unique_address]]) are certainly an improvement, but only new projects with no backwards compatibility requirements can actually use them (unconditionally).
tonyedgecombe 8 hours ago
The trouble with that is the more mental capacity you exert on the language the less you have available for the task at hand.
einpoklum 6 hours ago
C++ is quite amenable to making things less verbose. For example: Instead of a standard library algorithm taking a pair of iterators, you could have a function taking a container and calling the other function with its start() and end(). And then, with newer versions of the language, you can use a ranges-based function. There are lots of such syntactic hacks, from `using` through typed literals all the way to preprocessor macros (which we want to avoid, but are still there).
That's how you emulate language features that aren't there originally. I've "impelemented" a static code block, like in Java:
https://stackoverflow.com/a/34321324/1593077
and that's all in C++98. The implementation is a bit ugly but the use is terse and self-expalantory.
i_am_a_peasant 6 hours ago
That's just terrible, I love it.
Zardoz84 7 hours ago
Try Java
i_am_a_peasant 7 hours ago
hard pass :D
isn't kotlin supposed to be the future for JVM?
speed_spread 5 hours ago
witx an hour ago
Did it crash midway?
ElenaDaibunny 9 hours ago
wild that c++ is apparently the fastest growing top 4 language right now
grugdev42 9 hours ago
Thank you for releasing this for free! :)
undefined 9 hours ago
claiir 10 hours ago
> currently (as of Q3 2025) the fastest-growing of the top four languages in the world… +90% users in the past 3.5 years.
Because of AI, right?
kirtivr 7 hours ago
C++ is one of the languages less suited to the strengths of coding agents.
The language which still supports C-style pointers, arbitrary datatype conversions, and inherits architecture-specific undefined behavior gives you too many ways to fail at solving a problem.
As a programmer, I love coding in C++ because I know what I'm doing. I'd hate reviewing C++ code though.
pjmlp 2 hours ago
Those Python AI libraries....
raincole 9 hours ago
If this is a rhetorical question I genuinely don't know what's the implied answer. Why would AI specifically make C++ grow?
DesaiAshu 9 hours ago
A few reasons: 1. Header files make C++ verbose. Header files are well within LLM's ability 2. LLMs can handle setting up cmake for you 3. C++ is very well documented relative to (most) newer languages 4. LLMs can port modern features like websockets and build API wrappers easily, reducing the disadvantage against web (since most documentation is for JS/python/go)
Coding languages have been developing for speed of (manual) writing - akin to how human languages did with modern alphabets. Now that writing is a lot easier, languages will likely evolve towards a focus on execution (or in the case of human languages, speed of reading and precision of understanding)
raincole 9 hours ago
imtringued 7 hours ago
randusername 2 hours ago
Ideas:
- more accessible now that AI handles the high tooling activation energy
- more history and pre-AI internet content
- pybind11 is pretty popular to pair Python logic with C++ performance
- cpp committe is pretty bullish on new contracts and reflection features making C++ a glue language that AI can write well
pjmlp 2 hours ago
The GPGPU frameworks and JIT compilers that actually make those Python libraries usable.
bayindirh 10 hours ago
Let's assume that it's because of AI for this case.
Is this good or bad?
visha1v 10 hours ago
but do vibe coders even use c++? won't they use js or python?
pjmlp 2 hours ago
Yes, they need it for the AI libraries they call from Python.
tialaramex 8 hours ago
Reddit's r/cpp has always had some level of "My First X" posts where somebody goes from their first C++ lesson to being confident they've written the "World's Best X" in about a week. The AI slop made this much worse because now the author has been told by ChatGPT or whatever that they're a genius.
All the popular PLs have this problem to some extent.
infoinlet 8 hours ago
What a lineup of contributors—Stroustrup, Stepanov, Kernighan, Lattner, and more in one film. Forty years from 'C with Classes' to the fastest-growing of the top four languages is a remarkable arc, and it's nice to see the people behind it get their due. Adding this to the weekend watchlist. Thanks for sharing, Herb!
nitotm 2 hours ago
Pretty good.
keyle 10 hours ago
+90% users in the past 3.5 years
huh? That is incredible growth. How is it even measured?aw1621107 9 hours ago
Herb's blog post links to the SlashData Developer Nation Survey, so presumably that's what the claim is based on. The company has a methodology page here [1], and it looks like the Developer Nation panel [2] is one of the sources used by that company.
[0]: https://www.slashdata.co/research/developer-population
fg137 6 hours ago
Has anyone heard of any of these companies before?
And I wonder what the number is for other languages.
They want my email just to look at their "free report". Sorry that's not good to happen.
wscott 8 hours ago
You can hear the engineer in that second question. They hear a wild statistic pulled out of someone's ass and ask what is that sticking to the side?
gizajob 10 hours ago
Is it better than the Erlang documentary?
zerr 10 hours ago
Hello Mike.
(if you mean that film, most likely no.)
gizajob 9 hours ago
Hello Joe. Is the system working?
serhii1992 7 hours ago
Good, thank you!