Watercooler3 days ago

The Same Zig Post Flopped on Hacker News in August and Hit 291 Comments in September

One Zig experience report was submitted to Hacker News three times. The first two got 10 points and 2 points. The third got 240 points and 291 comments, and the argument it started shares almost nothing with the one Lobsters had about the same URL a month earlier.

The WJS Desk

Sep 21, 2026 · 7 min read

Photo by Alexey Chudin on Pexels

A developer who goes by besok has maintained jsonpath-rust since March 2021. It has 160 stars and was last pushed on September 9. In February this year they started porting it to Zig, and in August they wrote up what that felt like.

The post went to Hacker News on August 20 and got 10 points and zero comments. It went again on August 23 and got 2 points and zero comments. On September 19 somebody posted the identical URL a third time and it reached 240 points and 291 comments. Meanwhile, on the same day as that first dead submission, it hit Lobsters and picked up 65 points and 27 comments.

Same words, four submissions, two sites, one month apart. We read both threads end to end, and they are not about the same thing.

What the post actually claims

Worth stating first, because it gets lost. The author reimplemented RFC 9535 JSONPath in Zig, ending up with five flat files against the Rust version's nested module tree. Their verdict on Zig is warm: straightforward, fast, "real potential to become the true successor to C," but young and visibly unfinished.

The costs they name are specific. Manual allocator management produced four categories of bug that Rust's ownership rules prevent outright: a forgotten deinit, leaks on error paths, double frees, and orphaned allocations. And the language pushed them away from the style they were used to. In their words, "Where Rust leans on immutability and combinators, Zig pushed me toward in-place mutation and the pattern most native to the imperative world."

One more detail nobody in either thread raised, so we went and checked: zig-jsonpath exists, has 19 stars, and has not been pushed since May 9. The Rust original is still being maintained. That is not a gotcha, the experiment was real and the write-up is honest about it being an experiment. It is just useful context for a post being read as a verdict on two languages.

Hacker News argued about a movement

The highest-value thread on Hacker News started with tialaramex, who zoomed out past Zig entirely:

"I think when we're looking back on the 2020s we'll be struck by the Allocator obsession. All of the Handmade 'C successor' languages seem to have this obsession, including not only Zig but Odin, C3 and Jai. For some toy problems you can do clever allocator tricks and get a huge perf win... But a lot of real world software just isn't that simple."

The pushback was immediate and came from people who do this for a living. pton_xd did not accept the premise:

"AAA games use allocators extensively, and they are more complex pieces of software with higher performance requirements than nearly anything else out there. So I'm not sure what toy problems you're talking about."

convolvatron attacked the timeline rather than the claim, arguing that "kernels and databases often use explicit allocators because there is so much policy wrapped up in allocation. this goes back decades, its not just a feature of the 2020s."

The comment that actually advanced things was jcranmer's, which conceded the useful half and kept the sharp half:

"I'd word it slightly differently, as something like the Allocator Effect System obsession... rather that things like making container types generic over allocators seems to be more trouble than it's worth. I've never seen anyone use anything other than the default allocator for STL types, for example."

And simonask, a game developer, supplied the line that should have ended the argument: "Step zero of using arena allocation is to build realistic benchmarks so you can measure if it's worth the trouble in the first place. Standard allocators are incredibly good these days."

Lobsters argued about an editor plugin

On Lobsters, nobody was interested in allocators as a movement. The submitter nickmonad opened at 23 points by pushing back gently on the post's framing, saying he wished there were "a little more nuance around the allocator patterns" and that once you get a feel for arenas and fixed buffer allocators, memory design feels "way more tractable (and dare I say fun!)".

What the thread actually latched onto was the post's opening complaint about the near-total lack of IDE support. giann, at 15 points, asked the obvious question in five words: "Author has not found zls ?" briankung extended it: "This is not the first experience report that missed the Zig language server, IIRC. Maybe there's something wrong with zls SEO."

Then there was a real technical argument that Hacker News never had at all, about why Rust projects fragment into many small files. yorickpeterse blamed the compilation model: "The issue with Rust is that it's compilation unit is an entire crate, not a single file/module." kornel corrected him on the facts, noting that "rustc has incremental compilation. The smallest compilation unit is a 'query' in the compiler, which is pretty tiny," and argued the fragmentation is about API boundaries and dependency separation instead. xq then arrived from the other side entirely: "1kLoC? I'd consider a file with >= 10kLoC a big file in Zig."

Both sites litigated the disclaimer, differently

At the bottom of the post sits one sentence: "Disclaimer: styling and error handling throughout this article were cleaned up with the help of AI."

On Lobsters this became the highest scoring comment in the thread. ssokolow, at 35 points, made an argument about what writing is for:

"Isn't style the most personal, human part of writing?"

addison, at 22 points, had a narrower and more practical objection: "Grr, wish that was at the beginning to be honest." And nrvous raised the reading nobody had considered, that "styling" might just mean CSS.

Hacker News skipped the ethics and went straight to forensics. brilee posted a list of tells including a raw frequency count, "ctrl F 'real' -> 6 usages, ctrl F 'genuine' -> 4 usages." sampullman drew the conclusion: "to come across as genuine now I think you have to actively avoid AI-isms." diek put it more bluntly, saying that after wading through this stuff at work all day, "my brain now actively rejects Claude-isms in prose."

The most interesting reply was 12_throw_away's, which refused to treat this as a loss: "I actually think this might be a good thing? I'm way more aware of cliches and filler in my writing these days, and it almost always reads better when I just remove them and plainly say the thing."

The best comment nobody upvoted

Four people on Lobsters spent a chain arguing about whether the author had failed to find the Zig language server. vidyasagarv ended it at 3 points with a single line: "The dotfiles linked in the blog post does mention zls..."

So the author had it configured. The complaint was never that zls does not exist, it was that zls is not JetBrains, which is the point gecko made at 2 points: you get autocomplete and go-to-symbol, but "you don't have click-to-set breakpoints, refactoring tools, one-click profiling... the gap is truly massive." Two comments worth five points between them settled a question that the rest of the thread kept relitigating.

Our read

On the substance, jcranmer has the best of it. Explicit allocators are not a fashion, they are load-bearing in kernels, databases and game engines, and have been for decades. What is faddish is making every container generic over an allocator and treating that as a language-defining feature, which imposes a tax on the 95% of code that will only ever use the default. Zig charges that tax up front, and the author's four categories of memory bug are the receipt.

But the thing we cannot stop looking at is structural. Two communities read the same 3,000 words a month apart and came away arguing about a compiler's unit of compilation on one site and about the aesthetics of a movement on the other, and both spent a large fraction of their attention on how the prose was produced rather than what it reported.

The post's actual finding, four classes of memory bug that Rust prevents by construction, got less discussion than the author's use of a spellchecker.

What would change our mind: a version of this post with no AI disclaimer and identical content. If it drew the same allocator argument and none of the forensics, the disclaimer was the story. We suspect it would draw a smaller thread on Hacker News and roughly the same one on Lobsters, which would tell you something about both sites.

Your turn

We want the number, not the opinion: in your current codebase, how many allocations actually go through something other than the default allocator? If the honest answer is zero, you are jcranmer's data point. If it is most of them, tell us what you are building, because that is the case the skeptics keep saying does not exist.

And if the AI-prose forensics thread is the part you recognised, our piece on developers who now stop reading the moment they smell an LLM covers the same reflex from the reader's side, including what it costs people who write that way honestly.

Share

Same Zig post, three Hacker News submissions. The first two got 10 and 2 points. The third got 240 points and 291 comments, about something Lobsters never raised. #Zig #Rust #HackerNews

Never miss a ship

The best stuff that shipped this week, delivered every Thursday. Free, no spam. We read all the boring stuff so you get the fun parts.

Keep reading