Hacker ApprovedDepartments

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%
Each figure is 5 people. RecommendsCriticizes

Recommended in 13 of 13 months

  1. November 2025: recommended
  2. December 2025: recommended
  3. January 2026: recommended
  4. February 2026: recommended
  5. March 2026: recommended
  6. April 2026: recommended
  7. May 2026: recommended
  8. June 2026: recommended
  9. July 2026: recommended
  10. August 2026: recommended
  11. September 2026: recommended
  12. October 2026: recommended
  13. 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”
  • 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++”
  • 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”
  • 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++?”

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”
  • 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”
  • 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.

C programming language compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
Rust2,03997368%134 yrs118 ownersApproved
Go1,25465166%135.9 yrs63 owners—
Python1,06782157%1218 yrs64 owners—
Zig74344962%121 yr27 owners—
C programming languageThis page23015160%1330 yrs14 owners—
See all 163 programming languages, ranked

What 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)”

CriticizesComment from 29 Oct 2026 in “NetBSD adds a new text editor called atto”

“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!”

RecommendsComment from 23 Oct 2026 in “The Secret Life of Circuits is now in stock everywhere”

“C without UB is basically impossible, but C that does the right thing based on assumptions about the platform is possible”

MixedComment from 22 Oct 2026 in “Rust Style Guide”

“Evidence shows you need wisdom, discipline, and an impossibly high bar of encyclopedic knowledge of every feature of C”

CriticizesComment from 21 Oct 2026 in “PHP2Shell: AI uncovers critical RCE in PHP”

“just write it in C and benefit from the faster toolchain and the more comprehensive suite of tools”

RecommendsComment from 21 Oct 2026 in “Does Ruby on Rails still make sense?”

“'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”

MixedComment from 11 Oct 2026 in “C for Rust programmers”

“Easy to start with (with CodeBlocks on Windows and gcc on Linux) and the concepts were nicely explained.”

RecommendsComment from 10 Oct 2026 in “C for Rust programmers”

“C seems to me a really poor choice because it's barely more expressive than one of the machine code architectures”

CriticizesComment from 10 Oct 2026 in “Compiling Rust to readable C with Eurydice”

“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.”

CriticizesComment from 9 Oct 2026 in “Reducing undefined behavior in the C language”

“The problem with C is that modern compilers do a lot of transformations between your source code and the final machine code”

CriticizesComment from 9 Oct 2026 in “Reducing undefined behavior in the C language”

“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”

RecommendsComment from 26 Sep 2026 in “Ask HN: Who's still keeping a DOS machine up because the business depends on it?”

“Fast compilation times, long-term stability, portability to many architectures, multiple implementations”

RecommendsComment from 13 Sep 2026 in “Ask HN: C or C++?”

“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”

RecommendsComment from 8 Sep 2026 in “C*: Unifying Programming and Verification in C (2025)”

“C allows you to program all systems from Desktop/Server to all Embedded MCUs (simple or complex).”

RecommendsComment from 31 Aug 2026 in “Harvard Professor on Why You Should Learn C in 2026 [video]”

“It is very easy to read without much knowledge and has a big base of knowledge around for decades.”

RecommendsComment from 21 Aug 2026 in “The case against a C alternative (2022)”

“C and C++ are good tools to make the absolute fastest and lightest software in a great many cases.”

MixedComment from 19 Jul 2026 in “Neither GCC nor Clang are compliant with standard C++”

“as much as I love C, that would just be stupid if your goal is anything other than fun and experimentation”

MixedComment from 12 Jul 2026 in “Understanding the Odin Programming Language”

“C is kind of bad at its job, but nothing else has the "compatible with everything" badge of honor.”

MixedComment from 30 May 2026 in “Zig: Build System Reworked”

“the shear amount of CVE and crashes are much worse in terms of global energy usage than if it were safe”

MixedComment from 28 May 2026 in “The Green Side of the Lua”

“as someone writing numerical code (clusters, NUMA, SIMD, etc.) I think C is still the ideal tool for this”

RecommendsComment from 25 May 2026 in “C constructs that still don't work in C++”

“There isn't a language that achieves C's performance, access to hardware and portability while also having superior syntax.”

MixedComment from 24 May 2026 in “Sp.h is the standard library that C deserves”

“It’s meant to be used as a systems language that’s as close to assembly as possible while remaining portable”

RecommendsComment from 20 May 2026 in “Everything in C is undefined behavior”

“I still prefer C for new projects to any other language, because I value short compilation time and reduced complexity.”

RecommendsComment from 2 May 2026 in “Lib0xc: A set of C standard library-adjacent APIs for safer systems programming”

“Well written C code, especially for the purpose of writing and continuing to maintain mature GNU coreutils, is not a big risk”

RecommendsComment from 29 Apr 2026 in “Bugs Rust Won't Catch”

“my manually written (non-trivial) projects C hits fewer undefined behaviour than even trivial projects constructed with an LLM”

MixedComment from 21 Feb 2026 in “Meta Deployed AI and It Is Killing Our Agency”

“stuff where you need simplicity, fast compilation times, portability, interoperability with legacy systems, or high-performance - C”

RecommendsComment from 13 Feb 2026 in “D Programming Language”

“That can work if you have strong architectural discipline and are willing to pay the upfront cost. Most teams are not.”

MixedComment from 7 Feb 2026 in “I Write Games in C (yes, C)”

“C hit a perfect balance of being a small enough language to grok, being indepedent of the system manufacturers”

RecommendsComment from 6 Feb 2026 in “C Isn't a Language”

“It doesn't hide the issues behind some language abstraction, you are in full control of what the machine does.”

RecommendsComment from 30 Jan 2026 in “Why I Always End Up Going Back to C”

“Instead it remains stuck in a design from the 1970s, and has compromised semantics that result from the severe memory constraints of those days.”

CriticizesComment from 25 Jan 2026 in “Some C habits I employ for the modern day”

“reasons intrinsic to C, such as the risk of memory over/underflow, use after free, problematic numeric promotion”

CriticizesComment from 9 Jan 2026 in “What Happened to WebAssembly”

“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”

RecommendsComment from 6 Jan 2026 in “C Is Best”

“Plain and simple C is, by far, one of the current _LESS WORSE_ performant alternatives which can be used”

MixedComment 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.”

RecommendsComment from 2 Jan 2026 in “Rav1d will never beat dav1d in performance”

“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.”

RecommendsComment from 9 Dec 2025 in “If you're going to vibe code, why not do it in C?”

“specially designed embedded C code can survive total RAM erasure and still perform some meaningful work”

RecommendsComment from 23 Nov 2025 in “Several core problems with Rust”

“Proper strings and arrays for starters, instead of being pointers that the programmer is responsible for doing length housekeeping.”

CriticizesComment from 23 Nov 2025 in “GCC SC approves inclusion of Algol 68 Front End”

“Stick to C, not Python or Rust, it is much easier to understand because the abstractions are just there to hide code.”

RecommendsComment from 3 Nov 2025 in “Notes by djb on using Fil-C”

“C has such types and can guarantee that there is no out-of-bounds access at run-time in the scenarios you describe”

RecommendsComment from 2 Nov 2025 in “Why don't you use dependent types?”

“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.”

CriticizesComment from 1 Nov 2025 in “Hard Rust requirements from May onward”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.