C programming language
Ranked 16 of 163 programming languages by recommenders
Recommended for its speed, portability, long-term stability, simplicity and direct hardware control, but critics warn that undefined behavior and memory-safety bugs make it risky.
Recommended for its speed, portability, long-term stability, simplicity and direct hardware control, but critics warn that undefined behavior and memory-safety bugs make it risky.
381 people gave an opinion
- recommend it
- 230
- criticize it
- 151
- approval share
- 60%
Recommended in 13 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: recommended (month in progress)
Owned for 30 years
Median of the 14 owners who said how long they have had it.
Each square is one year.
Why it doesn’t carry the badge
- 230 people recommend itNeeds 10 or more, met.
- 1.5 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 13 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
Portable and stable for decades
“if you wrote C for low level, Lisp for high level, and compiled the software to run in an Intel 8080 emulator, that combo would likely still work in 50 years”
Comment from 26 Sep 2026 in “Ask HN: Who's still keeping a DOS machine up because the business depends on it?” “The fact that C was effectively "born old" means you can take a C89 program and compile it as C23 and it should simply work”
Comment from 6 Jan 2026 in “C Is Best” “most of the C programs that I have written, including 80% of FFmpeg, can run on computers much older than that.”
Comment from 2 Jan 2026 in “Rav1d will never beat dav1d in performance” - Comment from 6 Feb 2026 in “C Isn't a Language”
- Comment from 13 Sep 2026 in “Ask HN: C or C++?”
- Comment from 30 May 2026 in “Zig: Build System Reworked”
- Comment from 31 Aug 2026 in “Harvard Professor on Why You Should Learn C in 2026 [video]”
High performance
“stuff where you need simplicity, fast compilation times, portability, interoperability with legacy systems, or high-performance - C”
Comment from 13 Feb 2026 in “D Programming Language” “There isn't a language that achieves C's performance, access to hardware and portability while also having superior syntax.”
Comment from 24 May 2026 in “Sp.h is the standard library that C deserves” “as someone writing numerical code (clusters, NUMA, SIMD, etc.) I think C is still the ideal tool for this”
Comment from 25 May 2026 in “C constructs that still don't work in C++” - Comment from 6 Jan 2026 in “C Is Best”
- Comment from 19 Jul 2026 in “Neither GCC nor Clang are compliant with standard C++”
Small, simple language
“stuff where you need simplicity, fast compilation times, portability, interoperability with legacy systems, or high-performance - C”
Comment from 13 Feb 2026 in “D Programming Language” “I still prefer C for new projects to any other language, because I value short compilation time and reduced complexity.”
Comment from 2 May 2026 in “Lib0xc: A set of C standard library-adjacent APIs for safer systems programming” “Stick to C, not Python or Rust, it is much easier to understand because the abstractions are just there to hide code.”
Comment from 3 Nov 2025 in “Notes by djb on using Fil-C” - Comment from 6 Feb 2026 in “C Isn't a Language”
- Comment from 21 Aug 2026 in “The case against a C alternative (2022)”
Fast compilation times
“stuff where you need simplicity, fast compilation times, portability, interoperability with legacy systems, or high-performance - C”
Comment from 13 Feb 2026 in “D Programming Language” “I still prefer C for new projects to any other language, because I value short compilation time and reduced complexity.”
Comment from 2 May 2026 in “Lib0xc: A set of C standard library-adjacent APIs for safer systems programming” “Fast compilation times, long-term stability, portability to many architectures, multiple implementations”
Comment from 13 Sep 2026 in “Ask HN: C or C++?” - Comment from 21 Oct 2026 in “Does Ruby on Rails still make sense?”
What people warn about
Each mark is one comment
Memory-safety vulnerabilities
“the shear amount of CVE and crashes are much worse in terms of global energy usage than if it were safe”
Comment from 28 May 2026 in “The Green Side of the Lua” “Proper strings and arrays for starters, instead of being pointers that the programmer is responsible for doing length housekeeping.”
Comment from 23 Nov 2025 in “GCC SC approves inclusion of Algol 68 Front End” “C has lot of negative points (easy to create buffer overflows, integer overflows, use-after-free, and other vulnerabilities)”
Comment from 29 Oct 2026 in “NetBSD adds a new text editor called atto” - Comment from 9 Jan 2026 in “What Happened to WebAssembly”
Undefined behavior pitfalls
“That's one of the fundamental issues with C. We're all imperfect idiots some of the time and one instance of undefined behavior breaks any guarantees the language gives you.”
Comment from 1 Nov 2025 in “Hard Rust requirements from May onward” “The problem with C is that modern compilers do a lot of transformations between your source code and the final machine code”
Comment from 9 Oct 2026 in “Reducing undefined behavior in the C language” “C without UB is basically impossible, but C that does the right thing based on assumptions about the platform is possible”
Comment from 22 Oct 2026 in “Rust Style Guide” - Comment from 21 Oct 2026 in “PHP2Shell: AI uncovers critical RCE in PHP”
Outdated 1970s design
“C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine.”
Comment from 9 Oct 2026 in “Reducing undefined behavior in the C language” “Instead it remains stuck in a design from the 1970s, and has compromised semantics that result from the severe memory constraints of those days.”
Comment from 25 Jan 2026 in “Some C habits I employ for the modern day” “C seems to me a really poor choice because it's barely more expressive than one of the machine code architectures”
Comment from 10 Oct 2026 in “Compiling Rust to readable C with Eurydice” Demands heavy discipline
“That can work if you have strong architectural discipline and are willing to pay the upfront cost. Most teams are not.”
Comment from 7 Feb 2026 in “I Write Games in C (yes, C)” “Evidence shows you need wisdom, discipline, and an impossibly high bar of encyclopedic knowledge of every feature of C”
Comment from 21 Oct 2026 in “PHP2Shell: AI uncovers critical RCE in PHP”
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 525 comments that mention it, newest first. Each links to the original comment.
“C has lot of negative points (easy to create buffer overflows, integer overflows, use-after-free, and other vulnerabilities)”
“the only programming language book that my feeble mind was able to read all the way to the end and (at least it seemed) understood every single thing!”
“C without UB is basically impossible, but C that does the right thing based on assumptions about the platform is possible”
“Evidence shows you need wisdom, discipline, and an impossibly high bar of encyclopedic knowledge of every feature of C”
“just write it in C and benefit from the faster toolchain and the more comprehensive suite of tools”
“'C' seems to be a language that makes it easy to write incomprehensible statements, but it's not that hard to write code that is trivial bring up to date”
“Easy to start with (with CodeBlocks on Windows and gcc on Linux) and the concepts were nicely explained.”
“C seems to me a really poor choice because it's barely more expressive than one of the machine code architectures”
“C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine.”
“The problem with C is that modern compilers do a lot of transformations between your source code and the final machine code”
“if you wrote C for low level, Lisp for high level, and compiled the software to run in an Intel 8080 emulator, that combo would likely still work in 50 years”
“Fast compilation times, long-term stability, portability to many architectures, multiple implementations”
“It's about proving correctness of programs more generally, so any C programmer not looking at it because they know about Valgrind are choosing to skip something interesting”
“C allows you to program all systems from Desktop/Server to all Embedded MCUs (simple or complex).”
“It is very easy to read without much knowledge and has a big base of knowledge around for decades.”
“C and C++ are good tools to make the absolute fastest and lightest software in a great many cases.”
“as much as I love C, that would just be stupid if your goal is anything other than fun and experimentation”
“C is kind of bad at its job, but nothing else has the "compatible with everything" badge of honor.”
“the shear amount of CVE and crashes are much worse in terms of global energy usage than if it were safe”
“as someone writing numerical code (clusters, NUMA, SIMD, etc.) I think C is still the ideal tool for this”
“There isn't a language that achieves C's performance, access to hardware and portability while also having superior syntax.”
“It’s meant to be used as a systems language that’s as close to assembly as possible while remaining portable”
“I still prefer C for new projects to any other language, because I value short compilation time and reduced complexity.”
“Well written C code, especially for the purpose of writing and continuing to maintain mature GNU coreutils, is not a big risk”
“my manually written (non-trivial) projects C hits fewer undefined behaviour than even trivial projects constructed with an LLM”
“stuff where you need simplicity, fast compilation times, portability, interoperability with legacy systems, or high-performance - C”
“That can work if you have strong architectural discipline and are willing to pay the upfront cost. Most teams are not.”
“C hit a perfect balance of being a small enough language to grok, being indepedent of the system manufacturers”
“It doesn't hide the issues behind some language abstraction, you are in full control of what the machine does.”
“Instead it remains stuck in a design from the 1970s, and has compromised semantics that result from the severe memory constraints of those days.”
“reasons intrinsic to C, such as the risk of memory over/underflow, use after free, problematic numeric promotion”
“The fact that C was effectively "born old" means you can take a C89 program and compile it as C23 and it should simply work”
“Plain and simple C is, by far, one of the current _LESS WORSE_ performant alternatives which can be used”
“most of the C programs that I have written, including 80% of FFmpeg, can run on computers much older than that.”
“And it's super fun! Being able to compile a little C utility that lives in the Windows tray and has a menu, etc. is exhilarating.”
“specially designed embedded C code can survive total RAM erasure and still perform some meaningful work”
“Proper strings and arrays for starters, instead of being pointers that the programmer is responsible for doing length housekeeping.”
“Stick to C, not Python or Rust, it is much easier to understand because the abstractions are just there to hide code.”
“C has such types and can guarantee that there is no out-of-bounds access at run-time in the scenarios you describe”
“That's one of the fundamental issues with C. We're all imperfect idiots some of the time and one instance of undefined behavior breaks any guarantees the language gives you.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.