C++
Ranked 9 of 163 programming languages by recommenders
Recommended for low-level control, performance and a huge industry ecosystem, but critics agree it has piled up legacy cruft, confusing feature interactions and memory-safety footguns.
Recommended for low-level control, performance and a huge industry ecosystem, but critics agree it has piled up legacy cruft, confusing feature interactions and memory-safety footguns.
882 people gave an opinion
- recommend it
- 351
- criticize it
- 531
- approval share
- 40%
Recommended in 12 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Owned for 20 years
Median of the 36 owners who said how long they have had it.
Each square is one year.
Why it doesn’t carry the badge
- 351 people recommend itNeeds 10 or more, met.
- 0.6 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 12 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Low-level control and high performance
“I've yet to work with another language - and I've programmed in a shit-ton of languages - that gets out of the way as well as C++ when I want to systems-program”
Comment from 19 Jul 2026 in “Neither GCC nor Clang are compliant with standard C++” “Rust's much weaker compile-time metaprogramming features make some optimizations impractical in the language that are easy in C++.”
Comment from 24 Oct 2026 in “How close can pure functional programming get to C?” “It allows as many low-level operations as one wishes, but don't forces you to manage memory manually where it isn't necessary.”
Comment from 17 Jul 2026 in “Solod: Go can be a better C” - Comment from 30 Mar 2026 in “C++26 is done ISO C++ standards meeting, Trip Report”
- Comment from 5 Oct 2026 in “Type Safe Generic Data Structures in C (2025)”
- Comment from 20 Mar 2026 in “Java Is Fast. Your Code Might Not Be”
Huge ecosystem, tooling and libraries
“Why not using C++, for example? It's available almost everywhere, introducing its usage in an existing C codebase is pretty simple.”
Comment from 5 Oct 2026 in “Type Safe Generic Data Structures in C (2025)” “The documentation and surrounding ecosystem of conference talks, content creators, and longer texts on new features is excellent.”
Comment from 2 Dec 2025 in “Response to "Ruby Is Not a Serious Programming Language"” “I reach for C++, because the language runtimes, compiler tooling, and GPGPU frameworks I care about are partially written in C++”
Comment from 5 Jun 2026 in “C++: The Documentary Released Today” - Comment from 5 Nov 2025 in “Why engineers can't be rational about programming languages”
- Comment from 15 Jun 2026 in “Memory safety CVEs differ between Rust and C/C++”
Helpful abstractions like destructors, lambdas
“I wouldn't want to miss the nice parts that C++ adds, such as lambda functions and the occasional template for generalization.”
Comment from 30 Mar 2026 in “C++26 is done ISO C++ standards meeting, Trip Report” “Today with all the available language features and library additions you never have to leave the language at all”
Comment from 16 Oct 2026 in “C++26 Contracts: Introduction to Preconditions and Postconditions” “Even just not having to remember to call cleanup code thanks to dtors would alone be enough to sell me on it.”
Comment from 5 Jun 2026 in “C++: The Documentary Released Today” Keeps improving with modern standards
“A subset of the language keeps getting better and better you just need to ignore the demon of many decades of bloated nonsense”
Comment from 31 Dec 2025 in “Why C++ programmers keep growing fast despite competition, safety, and AI” “quite a lot of undefended behavior and things that will shoot yourself in the foot have been changed over the last 10 years”
Comment from 20 May 2026 in “Everything in C is undefined behavior” “Today with all the available language features and library additions you never have to leave the language at all”
Comment from 16 Oct 2026 in “C++26 Contracts: Introduction to Preconditions and Postconditions”
What people warn about
Each mark is one comment
Features interact in confusing ways
“The significant downside of C++ metaprogramming is that sometimes many features interact weakly and feel very much tacked on top of each other”
Comment from 13 Jun 2026 in “Orthodox C++” “I think this "multi-paradigm" approach works pretty well, but of course its complicated, and lots of people mess it up.”
Comment from 4 Jan 2026 in “Ask HN: What if a language's structure determined memory lifetime?” “then C++ loses by a mile - there's too many ways that the different features from #1 above can interact with each other”
Comment from 13 Oct 2026 in “A Modern Web App in C” - Comment from 13 Nov 2025 in “Rust in Android: move fast and fix things”
- Comment from 21 Aug 2026 in “The case against a C alternative (2022)”
- Comment from 12 Feb 2026 in “D Programming Language”
Decades of legacy cruft accumulate
“A subset of the language keeps getting better and better you just need to ignore the demon of many decades of bloated nonsense”
Comment from 31 Dec 2025 in “Why C++ programmers keep growing fast despite competition, safety, and AI” “footguns keep accumulating... it wouldn't hurt to have a mechanism to optionally drop the old cruft from the language”
Comment from 11 Jan 2026 in “C++ std::move doesn't move anything: A deep dive into Value Categories” “C++ occupied a niche in the right place and at the right time, and it grew from there. Many mistakes have been made”
Comment from 5 Jun 2026 in “C++: The Documentary Released Today” - Comment from 13 Nov 2025 in “Rust in Android: move fast and fix things”
- Comment from 6 Jan 2026 in “C Is Best”
Memory-safety footguns and undefined behavior
“the main problem is that the syntax still allows C style pointers and de referencing for compatibility with C code”
Comment from 25 Nov 2025 in “Rethinking C++: Architecture, Concepts, and Responsibility” “C and C++ offer performance and control, but they introduce additional complexity around manual memory management”
Comment from 19 Feb 2026 in “Show HN: LockFS” “the only things considered "safe" by the crowd are strict descendants of C/C++ with the array/pointer/string screw-ups that made those languages unsafe removed”
Comment from 24 Jan 2026 in “Some C habits I employ for the modern day” - Comment from 9 Jul 2026 in “My Thoughts on the Bun Rust Rewrite”
- Comment from 24 Nov 2025 in “Several core problems with Rust”
- Comment from 29 May 2026 in “Announcing Rust 1.96”
Steep learning curve and boilerplate
“C++ comes with baggage and requires up-front training. You need to dive into every language feature and STL library”
Comment from 17 Apr 2026 in “30 Years of HPC: many hardware advances, little adoption of new languages” “It required learning, or at least memorizing, a significant amount of boilerplate before a freshman could even start to consider writing their logic.”
Comment from 5 Feb 2026 in “Simply Scheme: Introducing Computer Science (1999)”
Other programming languages people recommend
The four most recommended other programming languages, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
See all 163 programming languages, rankedWhat people said
40 of the 1,368 comments that mention it, newest first. Each links to the original comment.
“Rust's much weaker compile-time metaprogramming features make some optimizations impractical in the language that are easy in C++.”
“Today with all the available language features and library additions you never have to leave the language at all”
“then C++ loses by a mile - there's too many ways that the different features from #1 above can interact with each other”
“C++ is the best language to write multi-architecture SIMD without relying on compiler magics like autovectorization”
“Why not using C++, for example? It's available almost everywhere, introducing its usage in an existing C codebase is pretty simple.”
“C++ is the tool that Google already had, so sensible engineering is at least partially investing in incrementally improvement”
“C++'s problem is that by having so many features to please everyone, the interactions between some of the features are less than obvious”
“It does sound like a thing where if you'd written this in C++, then you could have done it much easier (which is my experience)”
“This was a huge success, creating a large resurgence in adoption and setting new expectations for what a systems language should be capable of.”
“I've yet to work with another language - and I've programmed in a shit-ton of languages - that gets out of the way as well as C++ when I want to systems-program”
“It allows as many low-level operations as one wishes, but don't forces you to manage memory manually where it isn't necessary.”
“C++ spent years trying to make out that this constitutes useful guidance before gradually accepting that people aren't in fact going to stop making mistakes”
“Practically amount of C++ code being in active development (I wat to stress this particular point) dwarfs that of Rust”
“The significant downside of C++ metaprogramming is that sometimes many features interact weakly and feel very much tacked on top of each other”
“I reach for C++, because the language runtimes, compiler tooling, and GPGPU frameworks I care about are partially written in C++”
“Even just not having to remember to call cleanup code thanks to dtors would alone be enough to sell me on it.”
“C++ occupied a niche in the right place and at the right time, and it grew from there. Many mistakes have been made”
“If you care about performance, you would not port a software architecture optimized around the limitations of Java to a systems language.”
“C++ doesn't have that (I don't know if they've considered adding it), so they can't do anything about language footguns without compatibility breaks.”
“quite a lot of undefended behavior and things that will shoot yourself in the foot have been changed over the last 10 years”
“C++ comes with baggage and requires up-front training. You need to dive into every language feature and STL library”
“I wouldn't want to miss the nice parts that C++ adds, such as lambda functions and the occasional template for generalization.”
“because it cant determine call resolution outside of a single source file, EVERYTHING gets vtable'd, which ruins downstream optimizations”
“It is difficult to overstate just how important these features are for high-performance and high-reliability systems software.”
“Using C++, Go, or Rust gets you around that problem without having to jump through the hoops of code path warmup.”
“C and C++ offer performance and control, but they introduce additional complexity around manual memory management”
“quality issues I saw on the C++ side came partially from the ease in which the language enables incompatible use of different features”
“It required learning, or at least memorizing, a significant amount of boilerplate before a freshman could even start to consider writing their logic.”
“the only things considered "safe" by the crowd are strict descendants of C/C++ with the array/pointer/string screw-ups that made those languages unsafe removed”
“footguns keep accumulating... it wouldn't hurt to have a mechanism to optionally drop the old cruft from the language”
“C++ has reasonable dynamic linking (there are ABI breaks, but I only remember only one really bad one with std::basic_string and C++11)”
“where every half-decade a pile of additive changes get piled on the previous version of the language, and nobody can clean up the old mess”
“I think this "multi-paradigm" approach works pretty well, but of course its complicated, and lots of people mess it up.”
“A subset of the language keeps getting better and better you just need to ignore the demon of many decades of bloated nonsense”
“The documentation and surrounding ecosystem of conference talks, content creators, and longer texts on new features is excellent.”
“the main problem is that the syntax still allows C style pointers and de referencing for compatibility with C code”
“while in C++ the equivalent code of accessing an uninitialized value without verifying it beforehand would have resulted in entirely unpredictable behavior”
“C++ has many advantages over C, but it also brings some clear disadvantages that matter more when you want to be aware of every operation.”
“C++ just has a lot of corners you can get sucked into, and the legacy mix of multiple generations of C++ coding styles / OO stuff makes for some really tangled messes out there.”
“the ecosystem in industry standards, IDE tooling, libraries, and training costs in existing industries where C++ is the standard”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.