HN Hall of Fame Weekly email

C’s Biggest Mistake (2009)

digitalmars.com Essays & writing Essays & articles Software engineering Class of 2026-04 Hall of Fame
Screenshot of digitalmars.com captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 4 calendar years, with breakout response in 2 of them.

submissions
5
submitters
5
observed span
2020–2026
peak thread · 374 comments
232 pts
latest 20+ return · 2023-07-02
103 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

Author here. I'll be blunt and repeat a prediction I made 3 years ago or so: C is finished if it doesn't address the buffer overflow problem, and this proposal is a simple, easy, backwards compatible way to do it. It is simply too expensive to deal with buffer overflow bugs anymore. This one addition will revolutionize C programming like adding function prototypes did.

I started coding in the 70s when C first came out. Conflating arrays and pointers was, to me at the time, a huge win. I agree it was a mistake in the long run, but given the state of the art at the time, it gave so much power to the high level programmer that up to that point only assembly level developers had. I was able to move code that up to then had been coded in assembly to…

bwanab·103-point thread·

I've been dismissing these "C is dead" posts for awhile, but now I'm wondering why Nim/Zig/Rust aren't superseding C entirely for new development. It seems like embedded development and FFI libraries are still all C. My theory is that making a language is easy, but giving it good developer ergonomics and ecosystem is hard. Getting a C program to compile is still, in 2021, a pain in the butt. Do you use CMake, Scons, Ninja, Autotools? Do you need to…

I disagree because C is just a more humane assembler, it is unsafe intentionally. Look at all kinds of ugliness of C++ starting from why ZeroMQ can not be written in C++ and ending with [1] both of which were discussed here. I believe the biggest C's mistake is when you say "int x" it means "mut signed int x" while I would like to have "const unsigned int x". [1] http://lists.warhead.org.uk/pipermail/iwe/2005-July/000130.h...

eimrine·4-point thread·

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
2

100+ points or 50+ comments

Total points
387

reference only — not used in Hall rules or ranking

Total comments
480

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2020-09-12C’s Biggest Mistake (2009)First breakout · Best threadtodsacerdoti232374
2021-06-20C's Biggest Mistakevladharbuz468
2023-07-02C’s Biggest MistakeLatest 20+ point returnfzliu10396
2023-10-13C's Biggest Mistake (2009)g4zj41
2026-04-08C's Biggest MistakeHall inductionmhh__21