C3 programming language
Ranked 46 of 163 programming languages by recommenders
People recommend it as a C-compatible evolution with ergonomic improvements, modules, and full C ABI interop. The most common caveat is that critics question its safety features and some syntax and naming choices.
People recommend it as a C-compatible evolution with ergonomic improvements, modules, and full C ABI interop. The most common caveat is that critics question its safety features and some syntax and naming choices.
72 people gave an opinion
- recommend it
- 44
- criticize it
- 28
- approval share
- 61%
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)
Why it doesn’t carry the badge
- 44 people recommend itNeeds 10 or more, met.
- 1.5 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
Fun to program in
“I find it more fun to program in compared to plain C, and it's definitely more simple than reaching for C++.”
Comment from 3 Jan 2026 in “The C3 Programming Language” “I stumbled upon the language earlier this year and love it.”
Comment from 21 Aug 2026 in “The case against a C alternative (2022)” “It's my favorite of the new round of languages by far.”
Comment from 2 Oct 2026 in “Zig v0.17.0” - Comment from 2 Oct 2026 in “Zig v0.17.0”
- Comment from 4 Jan 2026 in “The C3 Programming Language”
- Comment from 15 Jul 2026 in “C3 0.8.2 a Modest Improvement”
Ergonomic improvements over C
“C3 lang gives you defer + a lot of significant ergonomic improvements right now”
Comment from 12 Oct 2026 in “A Modern Web App in C” “The improvement is you just write 'type?' for the return type to enable this and you don't need an out param”
Comment from 4 Jan 2026 in “The C3 Programming Language” “C3 provides a module system for cleaner code organization across files”
Comment from 3 Jan 2026 in “The C3 Programming Language” - Comment from 3 Jan 2026 in “The C3 Programming Language”
- Comment from 14 Jul 2026 in “C3 0.8.2 a Modest Improvement”
Familiar evolution of C
“C3 feels like home for C developers, there is a real market for language evolutions rather than revolutions”
Comment from 3 Jan 2026 in “The C3 Programming Language” “I think that makes a lot of sense and fits perfectly with their “evolution, not revolution” philosophy.”
Comment from 3 Jan 2026 in “The C3 Programming Language” “I like the idea of strict improvements to C without taking anything away”
Comment from 3 Jan 2026 in “The C3 Programming Language” - Comment from 4 Jan 2026 in “The C3 Programming Language”
Full C ABI compatibility
“C3 just has everything C compatible so not just calling into C but also C calling to C3 is just completely normal”
Comment from 30 Jun 2026 in “Zig's New BitCast Semantics and LLVM Back End Improvements” “The killer feature for me is the full ABI compatibility.”
Comment from 3 Jan 2026 in “The C3 Programming Language” “the idea of ABI compatibility with C is pretty ingenious”
Comment from 3 Jan 2026 in “The C3 Programming Language”
What people warn about
Each mark is one comment
Confusing syntax and naming choices
“I think the switch statement design is a foot gun: defaults to fall-through when empty and break when there is a body.”
Comment from 3 Jan 2026 in “The C3 Programming Language” “But the array indices being reversed on declaration? I cannot think of an upside to that at all.”
Comment from 4 Jan 2026 in “The C3 Programming Language” “It doesn't really add anything because 'void main()' already communicates it's a function.”
Comment from 3 Jan 2026 in “The C3 Programming Language” - Comment from 3 Jan 2026 in “The C3 Programming Language”
- Comment from 4 Jan 2026 in “The C3 Programming Language”
Safety features may add undefined behaviour
“sometimes instead of catching a mistake, these checks will instead silently introduce undefined behaviour into your program”
Comment from 3 Jan 2026 in “The C3 Programming Language” “However, just like for const the compiler might not detect whether the annotation is correct or not!”
Comment from 3 Jan 2026 in “The C3 Programming Language” “these can be misinterpreted as a safety feature, while they actually add more possibilities for UB”
Comment from 4 Jan 2026 in “The C3 Programming Language” Missing tagged union and move support
“sad to see that there is nothing special for matching or restructuring tagged unions”
Comment from 3 Jan 2026 in “The C3 Programming Language” “leaving out move semantics and destructors is inexcusable at this point”
Comment from 3 Jan 2026 in “The C3 Programming Language”
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 88 comments that mention it, newest first. Each links to the original comment.
“C3 lang gives you defer + a lot of significant ergonomic improvements right now”
“It's my favorite of the new round of languages by far.”
“C3 is honestly so good and a bit underrated.”
“The C3 temp allocator leans into this though. It's not a frame allocator but acts like a stack allocator.”
“I stumbled upon the language earlier this year and love it.”
“everything about C3 is super exciting”
“it adds a few useful things to libraries and to generic compile time introspection”
“C3 just has everything C compatible so not just calling into C but also C calling to C3 is just completely normal”
“Some people just prefer alternatives, be it C, C3, Odin, Zig, Jai or whatever else there is.”
“C3 even named these types differently, so they're certainly under no obligation to provide the wrapping unsigned integers”
“like V (when it came into existence), Zen C (4K stars since 2025) had a sudden burst in stars. Allowing it to nearly catch a long time repo like C3”
“In the case of C3, breaking changes only happen once a year with stdlib going through the general process of deprecating functions long before removing them.”
“breaking changes only happen once a year with stdlib going through the general process of deprecating functions”
“I really like the decisions made in C3”
“But the array indices being reversed on declaration? I cannot think of an upside to that at all.”
“these can be misinterpreted as a safety feature, while they actually add more possibilities for UB”
“swapping common terminology like that is a blunder from my perspective”
“The improvement is you just write 'type?' for the return type to enable this and you don't need an out param”
“I'll take order-independent declarations and fast modules over strictly sticking to C syntax any day.”
“It fits nicely because it allows better compilers to use the constraints to optimize more confidently”
“However, just like for const the compiler might not detect whether the annotation is correct or not!”
“It doesn't really add anything because 'void main()' already communicates it's a function.”
“I think that makes a lot of sense and fits perfectly with their “evolution, not revolution” philosophy.”
“C3 feels like home for C developers, there is a real market for language evolutions rather than revolutions”
“But it's unexpected for a language that bills itself as "The Ergonomic, Safe and Familiar Evolution of C".”
“I like the idea of strict improvements to C without taking anything away”
“choosing a conflicting name for an extremely common abstract data type”
“I find it more fun to program in compared to plain C, and it's definitely more simple than reaching for C++.”
“leaving out move semantics and destructors is inexcusable at this point”
“sad to see that there is nothing special for matching or restructuring tagged unions”
“designed around supporting separate compilation and dynamic linking”
“Specifying those assumptions in the code, instead of in flags to the compiler, seems like a win.”
“sometimes instead of catching a mistake, these checks will instead silently introduce undefined behaviour into your program”
“the first thing I noticed in their example is a double-colon scope operator”
“it adds a few very desirable things, such as introspection and macros”
“C3 provides a module system for cleaner code organization across files”
“the idea of ABI compatibility with C is pretty ingenious”
“I think the switch statement design is a foot gun: defaults to fall-through when empty and break when there is a body.”
“The killer feature for me is the full ABI compatibility.”
“This is what a website for a programming language should look like.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.