TGViewer
C++ - Reddit C++ - Reddit @r_cpp · 229 subscribers
Post #24885 17
Can I rant for a minute.

Call me weird but I think the majority of C++'s issues stem from one very fundamental problem: the language cannot evolve because everyone is against breaking ABI. Yes, this is another one of these posts. Allow me to try something new.

I think everyone already knows how we got here and this is what's driving me nuts. I don't understand why there hasn't been a push to actually solve it. Like, actually push against the entities that are against breaking ABI and allow the language to actually move forward instead of tiny baby steps. As Bjarne has said, there's a better, less-complicated language inside C++. We'll never see it with our current self-imposed limitation. It is clearly a self-imposed limitation and quite frankly I find it ridiculous we're still here. It's not like C++ is the only language and other languages haven't found a way around this issue with one solution or another.

Against all reason, I love C++. Don't ask me why. I've been using this frankenstein language since I think the early 90s. I continue using it now and have written a (very playable) 2D game engine with it. And, as with any experienced C++ programmer, my issues with the language are numerous. To name a few:

1. I think vector, string, and a few other STL types should have been baked into the language.
2. We have way too many ways to initialize a variable.
3. Argument passing is unnecessarily complicated compared to other languages.
4. The h/cpp compilation model is a dinosaur.
5. Why did we get copyable_function instead of function2? Let's not even get into that discussion.
6. Modules seem almost terminal upon arrival. (Yes, I've heard both that they are basically usable now, and also that the spec is fundamentally flawed.)
7. People are already complaining about reflection including STL headers because it needs vector. Don't even get me started on the prospect of something like refl_string and refl_vector.
8. Destructive moves.
9. ~~Let me know in the comments if I didn't include your favorite issue.~~

C++ has had some very nice evolutions. C++11 was great. Reflection will hopefully be a great addition. (Modules was supposed to be a great addition but let's not go there right now.) But there are so many competitor languages at this point it's just bonkers there are few or any attempts to solve the fundamental issue: C++ cannot grow because it cannot get out of its own way. Would C++ have so many flawed (map/set) or downright unusable features (regex) if there was a feasible way to go back and fix them? As an aside, I tried using std::regex in a utility for my game engine. At this point it would likely take over 2 minutes to execute said utility. Using CTRE, it executes in just a few seconds.

I honestly think it's no secret why Circle, Rust, and Go exist. Would they exist if C++ had an effective -- or at least, agreed-upon -- way to break ABI? (Or, ISO forbid, breaking ABI wasn't necessary by some means.) I have doubts about the feasibility of something like std::network because if one security hole is found that affects ABI, the whole thing becomes basically permanently unusable. Something like std::gui would also be dead upon arrival.

C++ specs get one chance to get it right. If they don't -- and unfortunately the rate is not 100%, which is unattainable anyway -- it's extra complexity in the language that is, for all intents and purposes, a "noob trap". I think this is dumb. I can't be the only one. I have to imagine this "we must get it right on the first shot" is also what makes passing a new paper outrageously difficult.

I really don't want to hear "we can't because breaking ABI would break tons of applications". I still think it's a self-imposed limitation, and it is time to recognize the heavy damage it's done to the language. You're limiting the evolution of the language to the extreme detriment of its usability. I personally cannot overstate this. The solutions are many, and if it comes down to "every major C++ release is an ABI break" so be it. C++'s technical debt is
More from @r_cpp
  1. Oct 7, 2026LearnCPP taking 2.5 Go of RAM It's crazy that with the number of adds on the website, lear…
  2. Oct 7, 2026A faster way to convert a timestamp ➜ Hour, Min, Sec https://www.benjoffe.com/fast-time-of…
  3. Oct 7, 2026Colorado **12th & 13th September** 1. **Advanced and Modern C++ Programming: The Tricky Pa…
  4. Oct 7, 2026Latest News From Upcoming C++ Conferences (2026-09-08) **TICKETS AVAILABLE TO PURCHASE** T…
  5. Oct 7, 2026How I optimized clang for 1.73x-1.91x performance boost over apt clang I wanted to have fa…
  6. Oct 7, 2026Episode 411 : CppCast - Kevin Carpenter - Volunteering (and speaking) at C++ conference, a…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →