Zig
Ranked 4 of 163 programming languages by recommenders
A low-level C replacement praised for comptime metaprogramming, explicit allocators and helpful safety checks, though critics say it lacks Rust's memory-safety guarantees and leaves footguns.
A low-level C replacement praised for comptime metaprogramming, explicit allocators and helpful safety checks, though critics say it lacks Rust's memory-safety guarantees and leaves footguns.
1,192 people gave an opinion
- recommend it
- 743
- criticize it
- 449
- approval share
- 62%
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 1 year
Median of the 27 owners who said how long they have had it.
Each square is one year.
Why it doesn’t carry the badge
- 743 people recommend itNeeds 10 or more, met.
- 1.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
Comptime replaces generics and macros
“zig seems more ambitious (incremental compilation ! comptime ! translate-c ! logical bitcasting !) and committed to the vision of C companion/replacement”
Comment from 30 Jun 2026 in “Zig's New BitCast Semantics and LLVM Back End Improvements” “Zig has shown that you can do almost anything you would reasonably want to do with macros with partial evaluation that has access to reflection.”
Comment from 9 Nov 2025 in “Why is Zig so cool?” “Zig is an excellent low-level language. Thanks to the comptime features, you can have high-level looking APIs while staying down to the metal.”
Comment from 30 Apr 2026 in “The Zig project's rationale for their firm anti-AI contribution policy” - Comment from 12 Jan 2026 in “Lightpanda migrate DOM implementation to Zig”
- Comment from 20 Sep 2026 in “What Zig felt like, coming from Rust”
- Comment from 8 Nov 2025 in “Why is Zig so cool?”
Explicit, swappable allocators
“Zig does help you. Array slices, explicit nullability of pointers, defer errdefer, explicit allocators, built-in leak detection, bounds checks, overflow detection”
Comment from 20 Jul 2026 in “Claude Code uses Bun written in Rust now” “since zig anoints an allocator interface in its stdlib, your (and the stdlib's) data structures which use allocators can be trivially reused”
Comment from 30 Jun 2026 in “Zig – SPIR-V Backend Progress” “Zig does in fact do some stuff to address memory management like making allocations more explicit using allocators and shipping with arenas.”
Comment from 10 May 2026 in “Bun ported to Rust in 6 days” - Comment from 6 Jan 2026 in “C Is Best”
- Comment from 21 Sep 2026 in “What Zig felt like, coming from Rust”
- Comment from 19 Jul 2026 in “Claude Code uses Bun written in Rust now”
- Comment from 5 Dec 2025 in “Thoughts on Go vs. Rust vs. Zig”
Bounds checks and spatial safety
“Zig does help you. Array slices, explicit nullability of pointers, defer errdefer, explicit allocators, built-in leak detection, bounds checks, overflow detection”
Comment from 20 Jul 2026 in “Claude Code uses Bun written in Rust now” “Zig is better than c, and maybe a little bit better than c++, especially with respect to spatial memory bugs, but it doesn't provide the same garantees as rust.”
Comment from 9 May 2026 in “Bun ported to Rust in 6 days” “Zig offers the same spatial memory safety as Rust does, and that is the kind of memory safety that prevents more dangerous vulnerabilities”
Comment from 11 Nov 2025 in “Zig and the design choices within” - Comment from 12 Jan 2026 in “Lightpanda migrate DOM implementation to Zig”
Ambitious modern C replacement
“Zig is better than c, and maybe a little bit better than c++, especially with respect to spatial memory bugs, but it doesn't provide the same garantees as rust.”
Comment from 9 May 2026 in “Bun ported to Rust in 6 days” “zig seems more ambitious (incremental compilation ! comptime ! translate-c ! logical bitcasting !) and committed to the vision of C companion/replacement”
Comment from 30 Jun 2026 in “Zig's New BitCast Semantics and LLVM Back End Improvements” “Zig is an excellent low-level language. Thanks to the comptime features, you can have high-level looking APIs while staying down to the metal.”
Comment from 30 Apr 2026 in “The Zig project's rationale for their firm anti-AI contribution policy” - Comment from 8 Jun 2026 in “Zig Structs of Arrays (2024)”
What people warn about
Each mark is one comment
No Rust-level memory safety guarantees
“Zig only suggests it (because you're forced to think about allocation, which makes you naturally think about the lifetime usually) but does not help you with it/ensure correctness.”
Comment from 12 Jan 2026 in “Lightpanda migrate DOM implementation to Zig” “Zig is better than c, and maybe a little bit better than c++, especially with respect to spatial memory bugs, but it doesn't provide the same garantees as rust.”
Comment from 9 May 2026 in “Bun ported to Rust in 6 days” “part of the problem is today this will be true tomorrow some poor chap maintaining the code will forget/misunderstand the intent and hello undefined behavior.”
Comment from 5 Dec 2025 in “Thoughts on Go vs. Rust vs. Zig” - Comment from 17 Nov 2025 in “Open-source Zig book”
- Comment from 14 Feb 2026 in “Zig – io_uring and Grand Central Dispatch std.Io implementations landed”
- Comment from 15 Jan 2026 in “Lightpanda migrate DOM implementation to Zig”
API design makes mistakes easy
“Zig has plenty of foot guns (eg forgetting to call defer on a deinit but even misusing noalias or having an out of bounds result in memory corruption)”
Comment from 14 Feb 2026 in “Zig – io_uring and Grand Central Dispatch std.Io implementations landed” “Zig has some very interesting features, but the way they approach language and API design leaves a lot of surface area that makes mistakes easy.”
Comment from 1 Nov 2025 in “Hard Rust requirements from May onward” Manual memory management slows development
“In Zig they're at least not paying for this with runtime space, they're paying for it with the programmer's need to make sure they talk about the same allocator everywhere.”
Comment from 28 Oct 2026 in “Four Months of Zig” “Zig’s low-abstraction / explicit-by-default syntax tends to have you write more boilerplate-y code in general that are more annoying to write and maintain”
Comment from 9 Jul 2026 in “Rewriting Bun in Rust” “This is reinforcing my belief that Zig programmers actually just have a sort of aesthetic attachment to the idea of managing their allocations themselves”
Comment from 27 Oct 2026 in “Four Months of Zig” - Comment from 31 May 2026 in “Zig ELF Linker Improvements Devlog”
Gets in the way for complex work
“zig is made to feel easy and modern for people who don't know any better, and it does this well. But as soon as you actually need to do complex stuff, it gets in the way moreso than C”
Comment from 8 Nov 2025 in “Why is Zig so cool?” “Zig’s low-abstraction / explicit-by-default syntax tends to have you write more boilerplate-y code in general that are more annoying to write and maintain”
Comment from 9 Jul 2026 in “Rewriting Bun in Rust”
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.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Rust | 2,039 | 973 | 68% | 13 | 4 yrs118 owners | Approved |
| Go | 1,254 | 651 | 66% | 13 | 5.9 yrs63 owners | — |
| Python | 1,067 | 821 | 57% | 12 | 18 yrs64 owners | — |
| ZigThis page | 743 | 449 | 62% | 12 | 1 yr27 owners | — |
| TypeScript | 574 | 273 | 68% | 13 | 8 yrs17 owners | Approved |
What people said
40 of the 2,112 comments that mention it, newest first. Each links to the original comment.
“In Zig they're at least not paying for this with runtime space, they're paying for it with the programmer's need to make sure they talk about the same allocator everywhere.”
“This is reinforcing my belief that Zig programmers actually just have a sort of aesthetic attachment to the idea of managing their allocations themselves”
“Zig may be a compelling alternative to languages that don't have a standard library that lets you choose an allocation strategy freely”
“Zig's use of partial evaluation (comptime) as a single coherent mechanism that replaces a myriad of other partial-evaluation mechanisms”
“Claude does a great job of writing unit tests for the Zig code, and combined with Zig's fuzzing features and a Python-based integration testing suite, I have avoided hitting runtime UB so far.”
“Zig does help you. Array slices, explicit nullability of pointers, defer errdefer, explicit allocators, built-in leak detection, bounds checks, overflow detection”
“It's too bad about Zig because it has many nice ideas, in particular allocators, that I hope Rust or some future language will adopt.”
“To me production-ready means it can be trusted to power production workloads, has all tooling I need, and has a consistent long-term vision. Zig ticks all the boxes.”
“Zig itself is a perfect counterexample to the theory that writing a compiler in a low level systems language will lead to a fast compiler.”
“Zig’s low-abstraction / explicit-by-default syntax tends to have you write more boilerplate-y code in general that are more annoying to write and maintain”
“zig seems more ambitious (incremental compilation ! comptime ! translate-c ! logical bitcasting !) and committed to the vision of C companion/replacement”
“since zig anoints an allocator interface in its stdlib, your (and the stdlib's) data structures which use allocators can be trivially reused”
“Zig professes to be a C replacement, not a C++ replacement, so leaving out operator overloading is consistent with that design goal.”
“You're never going to interate at JS/Python speeds with Zig because you'll always be wrangling with memory lifecycles, object lifecycles, etc...”
“why would you chain yourself to the crazy political nightmare that is the Rust project, when you've already got a language & runtime that's treated you well”
“having actually written some zig in the last few days to play with their Io model / see what passing around an allocator is like, Zig is pretty fantastic”
“Zig does in fact do some stuff to address memory management like making allocations more explicit using allocators and shipping with arenas.”
“Zig is better than c, and maybe a little bit better than c++, especially with respect to spatial memory bugs, but it doesn't provide the same garantees as rust.”
“Zig is an excellent low-level language. Thanks to the comptime features, you can have high-level looking APIs while staying down to the metal.”
“while it looks better than CMake, for anything professional I need remote execution support to deviate from the industry standard. Zig doesn't have that.”
“Modern languages that don't throw exceptions for every error like Rust, Go, and Zig make much more sane telemetry reports in my experience.”
“Moving from Python to Zig is a step down the tech stack, which brings with it exposure to underlying concepts and limitations that matter when writing any software”
“Rushing to "LTS" would go completely against the ethos of constant experimentation and improvement that is and has been making zig great.”
“it's better in my opinion for them to get the big important stuff right early than it is to get something stable that is harder to change and improve later”
“Zig has plenty of foot guns (eg forgetting to call defer on a deinit but even misusing noalias or having an out of bounds result in memory corruption)”
“You need to statically bound allocations to make sure they don't escape the arena (which is exactly how arenas work in Rust, but not Zig).”
“It places partial evaluation as its biggest focus more so than any other language in history, and is also extraordinarily focused on tooling.”
“Zig only suggests it (because you're forced to think about allocation, which makes you naturally think about the lifetime usually) but does not help you with it/ensure correctness.”
“The safety checks that Zig does have are different, and are different in a way that's uniquely useful for this particular project.”
“It's caused me to be really thoughtful with how I design my data structures, and often made me use better ways of representing metadata.”
“To me, the whole point of Zig's explicit allocator dependency injection design is to make it easy to not use the system allocator”
“part of the problem is today this will be true tomorrow some poor chap maintaining the code will forget/misunderstand the intent and hello undefined behavior.”
“Given the density of memory issues in the Bun issue tracker I have a hard time squaring the statement that Zig makes it "easy" to build memory safe programs.”
“Zig offers the same spatial memory safety as Rust does, and that is the kind of memory safety that prevents more dangerous vulnerabilities”
“Zig has shown that you can do almost anything you would reasonably want to do with macros with partial evaluation that has access to reflection.”
“the unprecedented use of partial evaluation is in having a single unified mechanism that replaces generics, interfaces, and macros”
“zig is made to feel easy and modern for people who don't know any better, and it does this well. But as soon as you actually need to do complex stuff, it gets in the way moreso than C”
“The overhead isn't remarkably worse than the cost of modifying the value someone passed in to "Fill this in in case of errors" (which is what you have to do now in Zig).”
“Zig has some very interesting features, but the way they approach language and API design leaves a lot of surface area that makes mistakes easy.”
“With the fun distinction that you can choose whether your program uses actual threads, or coroutines, or just runs everything synchronously without changing any of your code.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.