frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Zig breaking change – initial Writergate

https://github.com/ziglang/zig/pull/24329
91•Retro_Dev•5h ago

Comments

stitched2gethr•3h ago
Well it's about time.
ksynwa•3h ago
Is Writergate a technical term or a reference to Watergate?
n42•3h ago
in a sense it's a reference to Allocgate (a previous big breaking change to allocators in Zig), which was itself a reference to Watergate
kzrdude•18m ago
by now it's a well worn/used trope to make -gate names for any scandal. But the distance in time (and culture) to the original Watergate scandal is growing, so it seems less impactful now.
brabel•2h ago
I like Zig but it seems to just keep redesigning itself, while other languages like Odin “shipped” long ago and don’t seem to need to look back. Is Zig suffering from perfectionism syndrome where things are never good enough??
silisili•2h ago
That's kinda my experience with watching Zig. It went from 'look how simple this is' to 'look at this new feature syntax' long ago.

People used to compare it as simpler than Rust. I don't agree that it's simple anymore at all.

None of this is meant to be badmouthing or insulting. I'm a polyglot but love simple languages and syntaxes, so I tend to overly notice such things.

Laremere•2h ago
The computer is a machine, and modern ones are complicated. When I am programming, I want to precisely control that machine. For me, simplicity is measured in how complicated it is to get the machine to do what I want it to do. So, eg, having several different operators for adding two integers sounds complicated. However there is simplicity in not having to reach far to actually get the correct behavior, and there is some simplicity in the process of being forced to make that choice as it irons about what behavior you actually want.
silisili•2h ago
I think that's long been the argument of simplicity. 'Simple to remember' vs 'simple to perform.'

I tend to fall into the former camp. Something like BF would be the ultimate simple language, even if not particularly useful.

lewdwig•45m ago
Structured concurrency is a notoriously hard problem. This is part of Zig’s 4th attempt to get it right.
kuon•2h ago
I'd say it is taking some serious design decision for like the 30 years to come, so I am happy it breaks things now.

I wish it moved to snake_case for functions, this is a cosmetic detail but it drives me crazy.

pjmlp•2h ago
If I look to how I was programming in 1986, and how I am programming now, it is too much hope to have such a design goal, especially since most likely there is little Zig has to add to quantum and AI based systems.
lionkor•2h ago
This feels out of touch with the actual industry today.
pjmlp•1h ago
Out of touch is assuming that a programming language with zero touch points with AI tooling is going to be relevant in a AI driven industry.
cornstalks•2h ago
I’m glad they are taking their time. They’ve made solid improvements and I don’t think get the sense that they’re paralyzed with perfectionism.

They’re not rushing, that’s for sure. But I’ve never felt worried about 1.0 never happening in an unending pursuit of unrealistic impossible ideals.

vendiddy•1h ago
They've been pretty explicit about their goals in not settling for a local optimum in the language and taking their time.

It seems like folks expect stability pre 1.0.

pjmlp•2h ago
Looks like it, while at the same time still lacks any killer application that would make learning Zig a requirement, regardless of one's opinion on the language, like it already happened with many others now in mainstream.

So where is Zig's OS, browser, docker, engine, security, whatever XYZ, that would make having Zig on the toolbox a requirement?

I don't see Bun nor Tiger Beetle being that app.

lionkor•2h ago
The killer application case is slow adoption inside ancient C and C++ codebases. That's the angle.
pjmlp•1h ago
It hardly brings anything new to the table in such cases, given its approach to safety.

Most of it you can already get in C and C++, by using the tools that have in the market for the last 30 years.

lewdwig•50m ago
And yet C/C++ developers have mostly spent the last 30 years not using those tools which is why safer successors to C and C++ appeared.
detaro•47m ago
I think pjmlps point is that Zig is not adding enough to be one of those safer successors.
dgb23•4m ago
Not a killer app, but I think one thing you might consider is zig build.
audunw•2h ago
This is a standard library change, not a syntax change

I think the main big thing that’s left for 1.0 is to resurrect async/await.. and that’s a huge thing because arguably very few if any language has gotten that truly right.

As the PR description mentions: “This is part of a series of changes leading up to "I/O as an Interface" and Async/Await Resurrection.”

So this work is partially related to getting async/await right. And getting IO right is a very important part of that.

I think it’s a good idea for Zig to try to avoid a Python 3 situation after they reach 1.0. The project seems fairly focused to me, but they’re trying to solve some difficult problems. And they spend more time working on the compiler and compiler infrastructure than other languages, which is also good. Working on their own backend is actually critical for the language itself, because part of what’s holding Zig back from doing async right is limitations and flaws in LLVM

dosshell•2h ago
>> because part of what’s holding Zig back from doing async right is limitations and flaws in LLVM

this was interesting! Do you have a link or something to be able to read about it?

audunw•1h ago
Much of the discussion is buried in the various GitHub issues related to async. I found something of a summary in this Reddit comment

https://www.reddit.com/r/Zig/comments/1d66gtp/comment/l6umbt...

travisgriggs•1h ago
> I think the main big thing that’s left for 1.0 is to resurrect async/await.. and that’s a huge thing because arguably very few if any language has gotten that truly right.

Interesting. I like Zig. I dabble periodically. I’m hoping that maturity and our next generation ag tech device in a few years might intersect.

Throwing another colored function debacle in a language, replete with yet another round of the familiar but defined slightly differently keywords, would be a big turn off for me. I don’t even know if Grand Central Dispatch counts, but it—and of course Elixir/Erlang—are the only two “on beyond closures/callbacks” asynch system I’ve found worked well.

messe•1h ago
As far as I know, Zig still wants their implementation of async to avoid function colouring.
thelastbender12•2h ago
Sorry, I think this comparison is just unfair. Odin might have "shipped" but are there are any projects with significant usage built on it? I can count at least 3 with Zig - Ghostty, Tigerbeetle, and Bun.

Programming languages which do get used are always in flux, for good reason - python is still undergoing major changes (free-threading, immutability, and others), and I'm grateful for it.

LukaD•2h ago
All the JangaFX products (such as EmberGen) are written in Odin.
thelastbender12•1h ago
Thank you, my bad - I wasn't aware.

I still think what drives languages to continuously make changes is the focus on developer UX, or at least the intent to make it better. So, PLs with more developers will always keep evolving.

dismalaf•1h ago
> Odin might have "shipped" but are there are any projects with significant usage built on it?

JangaFX stuff is written in Odin and has some pretty big users.

https://jangafx.com/ https://odin-lang.org/showcase/

zwnow•2h ago
And this is exactly why you do not use shiny new languages for your projects. Hope tigerbeetle won't have too much trouble with this
hmry•2h ago
Zig is the only language I've used where every library specifies the one (and only) compiler version it works on in their GitHub readme.
kunley•50m ago
Experienced quite the contrary, some time ago at least..

Which is a pity because really liked the language, but the discovering what works with what, oh dear

Hamuko•2h ago
Are people deploying production code in a language that is still in its 0.x version?
zwnow•2h ago
I dont but there are companies who trust the language (which is a good thing but also short sighted)
cenamus•2h ago
I mean, what's the difference to the python 2/3 debacle? People were writing/extending in python 2 long after it was declared obsolete
Hamuko•2h ago
Not having breaking changes every N months?
mirashii•1h ago
It's not about sticking around on an old version, it's about ever being able to catch up, and what the rest of the ecosystem is going to do. Python did this major version bump that broke a lot of the ecosystem, and it went so poorly that they've effectively promised never to do it again and completely excised any thought of ever having a major version bump again, and other languages and communities now point to it regularly as a debacle to be avoided.

When you break things regularly, you're forcing a choice on every individual package in the ecosystem: move forward, and leave the old users behind, or stay behind, and risk that the rest of the ecosystem moves forward without you. Now you've got a whole ecosystem in a prisoner's dilemma. For an individual, maybe you can make a choice and dig in and make your way along without too much trouble. But the ecosystem as a whole can't, the ecosystem fractures, and if it doesn't converge on the latest version, it slowly withers and dies.

ozgrakkurt•1h ago
A lot of people were using tokio in prod when it was 0.1 and didn’t get upset afaik.

Rust didn’t even have async await at that time

bogdan•43m ago
Some prod are more prod than the others.
eviks•1h ago
The risk isn't unique to shiny new languages
ozgrakkurt•1h ago
TigerBeetle uses io_uring afaik so they don’t use these io interfaces at all.

Also found that these interfaces only cause problems for performance and flexibility in rust so didn’t even look at them in zig.

jorangreef•1h ago
This is exactly why we chose Zig.

Andrew’s design decisions in the language have always been impeccable. I’ve never seen him put a foot wrong and would have made the same change myself.

This is also not new to us, Andrew spoke about this at Systems Distributed ‘25.

Also, TigerBeetle has and owns its own IO stack in any event, and we’ve always been careful to use stable language features.

But regardless, it’s in our nature to “do the right thing”, even if that means a bit of change. We call this “Edge” and explicitly hire for people who have the same characteristic, the craftspeople who know how to spot great technical quality, regardless of how young (or old!) a project may be.

Finally, I’ve been in Zig since 2018. I wouldn’t exactly call it “shiny new”. Zig already has the highest quality toolchain and std lib of anything I would use.

zwnow•1h ago
Good to know, also thanks for the detailed reply! Glad you are fully aware of these nuances, but it also doesn't surprise me considering your amazing presentation of Tigerbeetle! Much success in the future.
tialaramex•55m ago
> Andrew’s design decisions in the language have always been impeccable. I’ve never seen him put a foot wrong and would have made the same change myself.

Interesting, who designed the old Zig IO stack which alas Andrew needed to replace?

eddythompson80•50m ago
A less experienced Andrew
eviks•47m ago
Indeed, but to be fair, the old stack was done with a hand, not a foot!
BrouteMinou•33m ago
I've built a bridge 20 years ago. It was great, people could finally go from one side of the river to the other.

Everyday, more and more people started using that bridge.

In 2025, I've rebuilt the bridge twice as big to accommodate the demand of a growing community.

It's great and the people love it!

jorangreef•3m ago
I think what you're not appreciating is how this design is a huge improvement over the status quo, not only in Zig, but also the streaming interfaces in most languages.

Wait till the SD25 talk on this comes out, to first understand the rationale a bit better!

DanielHB•17m ago
> Zig already has the highest quality toolchain and std lib of anything I would use.

My couple of days experience with Zig was very lackluster with the std lib, not that it is bad, but feels like it is lacking a lot of bare essentials. To be expected for a new pre-1.0 language of course.

blippage•1h ago
I tried Zig some time ago to use with microcontrollers. It has a generator for the pins, which was nice. But subsequent versions broke as Zig changed syntax. So I started going down the rabbit-hole (it needed a newer version of llvm, for example) until I eventually decided that the game wasn't worth the candle.

The fact that another breaking change has been introduced confirms my suspicion that Zig is not ready for primetime.

My conclusion is to just use C. For low-level programming it's very hard to improve on C. There is not likely to be any killer feature that some other contender will allow you to write the same code in a fifth of the lines nor make the code any more understandable.

Yes, C may have its quirky behaviour that people gnash their teeth over. But ultimately, it's not that bad.

If you want to use a better C, use C++. C++ is perfectly fine for using with microcontrollers, for example. Now get back to work!

sgt•1h ago
But at some point it'll be ready. Might it be worth it then?
overflyer•1h ago
Dude Zig is clearly pre 1.0. It can introduce breaking changes with every commit and rightfully so. I mean d'oh it's Not ready for Prime Time.
hencoappel•1h ago
Zig uses ZeroVer so don't expect it to ever hit 1.0.

https://0ver.org/

bigstrat2003•1h ago
Is that versioning site supposed to be some kind of joke? I can't really figure out if they are joking or serious - the tone comes off as joking, but it could be read as serious too.
dtech•1h ago
I guess you're being Poe's lawwed but it's definitely a joke
self_awareness•1h ago
The point of the language stability is spon on, but it's actually very easy to improve on C, not in terms of performance or readability, but rather safety and the ability to encode more constraints in a compact form than C would ever allow. Sometimes it's not about less lines, but the same amount of lines that encode a lot more stuff than these lines in C.
eddythompson80•1h ago
> The fact that another breaking change has been introduced confirms my suspicion that Zig is not ready for primetime.

Huh, it was the 0.14 version number for me.

dtech•1h ago
0.x doesn't say as much as it used to 20 years ago, many fine projects keep it for way too long.
eddythompson80•51m ago
Zig has a pretty well documented 1.0 goals. It was the first thing I heard about zig from Andrew about. https://youtu.be/5eL_LcxwwHg
arp242•11m ago
Yes, that was the point. To understand what that "0.14" means, we need to know those "well documented 1.0 goals" and some hour long YouTube video. That is, merely the "0.14 version number" without context is not enough, like your previous comment said.
eddythompson80•9m ago
You look at the version, the milestones https://github.com/ziglang/zig/milestones, and it makes sense. The YouTube video is just more proof. Picking up a 0.14 software without looking the most basic thing about it like “oh, what kind of 0.14 is this” then complaining that “it’s not ready for prime time” is odd behavior
juliangmp•1h ago
Obligatory C is not a low level language: https://queue.acm.org/detail.cfm?id=3212479

I also have to disagree with C++ for micro controllers / bare metal programming. You don't get the standard library so you're missing out on most features that make C++ worthwhile over C. Sure you get namespaces, constexpr and templates but without any standard types you'll have to build a lot on your own just to start out with.

I recently switched to Rust for a bare metal project and while its not perfect I get a lot more "high level" features than with C or C++.

vlovich123•56m ago
Doesn’t Rust nostd give up a comparable part that C++ would give up? It’s typically all the memory allocations that inhibit the use of data structures.
juliangmp•26m ago
Yeah you don't get its std library, but Rust makes a distinction between core and std, and core is available. Doesn't sound like a lot but you get your standard types like Result and Option, you get slices since they're part of the language or if you need allocation you can define the global allocator in core::alloc.

This distinction makes it really comfortable to use.

Though one caveat about no_std is that you'll need some support library like https://docs.rs/cortex-m-rt/latest/cortex_m_rt/

TuxSH•42m ago
> You don't get the standard library

Why is that? Sure, allocating containers and other exception-throwing facilities are a no-go but the stdlib still contains a lot of useful and usable stuff like <type_traits>, <utility>, <source_location>, <bit>, <optional>, <coroutine> [1] and so on

[1] yes they allocate, but operator new can easily be overridden for the promise class and can get the coro function arguments forwarded to it. For example if coro function takes a "Foo &foo", you can have operator new return foo.m_Buffer (and -fno-exceptions gets rid of unwinding code gen)

juliangmp•37m ago
That's the most frustrating part, a lot of the std library would work on a bare metal system (and would be rather useful), but getting those parts into your project and avoiding the ones that will give you compiler errors in form of esoteric poems is a nightmare.

Vendors at this point seem to give their implementation of some of the std library components, but the one's I've seen were lacking in terms of features.

DanielHB•22m ago
This is a problem with WASM as well, use a certain innocent function from the C++ std lib and suddenly your WASM binary grows by 10mb.
guappa•20m ago
Doesn't arduino use c++?
vlovich123•57m ago
I haven’t done embedded stuff in Rust, but the nostd crates and automatically generated libraries from manufacturer SVDs seemed neat. The ability to trivially pull in already written functionality would also seem fantastic.
steeve•7m ago
It absolutely is and we (ZML) are using it with great success. That said, Andrew said he would absolutely would break compat if it meant things go in the right direction. Yes, it can be painful sometimes, yes I do not always agree with his choices, but it has never been a blocker nor a significant time sink.

And in the end, things do improve significantly.

In this case, I think the new IO stuff is incredible.

drtgh•1h ago
By the title I thought that they were going to implement this,

https://github.com/ziglang/zig/issues/5973

Aissen•1h ago
This is why it's good to have automated tooling that can do semantic changes on your language and standard library use. Go has `go fix` even if it was only used in pre-1.0 days AFAIK. It is never lost because this type of tooling can be used as the foundation for linters, refactoring tools, etc. Is there such a solution in Zig?
jedisct1•1h ago
Zig Roadmap 2026 : https://www.youtube.com/watch?v=x3hOiOcbgeA
timeon•20m ago
Is there non-video version?
kristoff_it•53m ago
For context this was presented, alongside other things, in the Zig Roadmap 2026 stream.

VOD: https://youtu.be/x3hOiOcbgeA

lpapez•36m ago
At my first job, the senior guy on my team used to say:

"Software is just like lasagna. It has many layers, and it tastes best after you let it sit for a while".

I still follow this principle years down the line and avoid introducing shiny new things on my projects.

WhereIsTheTruth•32m ago
well, in that case, the lasagna is still being cooked, until served (1.0), why question the chef?

let him cook

GolDDranks•27m ago
I have written very little Zig and a lot of Rust, but I love both languages. However, Zig having breaking changes has made me wary of not starting anything serious it with – yet. I'm still happy that these changes happen, because I'm willing to wait for a stable version. Meanwhile, I enjoy myself some Rust, and probably continue doing so.
adastra22•23m ago
Whelp, I ain't ever touching Zig if this is how it is developed.
rcastellotti•20m ago
thanks for the info, do keep us updated please
ladyanita22•13m ago
Be as sarcastic as you want. This is a feeling many developers probably share.
osa1•10m ago
I'm out of the loop.. What is this comment referring to by "this"?
thiht•2m ago
Programming language in version 0.14 has breaking changes, UNACCEPTABLE

An attempt at defining consciousness made based on information theory

https://docs.google.com/document/d/1RN56GMpE8D4tc8k9Bw9YfSeJ4FZOyixkxWKpN_H0A34/edit?usp=drivesdk
1•Trenthug•17s ago•0 comments

OSI provides feedback to the EU Cybersecurity Act

https://opensource.org/blog/keeping-europe-safe-and-advancing-open-source-osi-provides-feedback-to-the-eu-cybersecurity-act
1•doener•4m ago•0 comments

Malaria as neurosyphilis treatment: A historical case study in medical ethics

https://medicine.yale.edu/news-article/malarial-fever-as-neurosyphilis-treatment-a-historical-case-study-in-medical-ethics/
1•thunderbong•6m ago•0 comments

The Parrot in the Machine

https://www.nybooks.com/articles/2025/07/24/the-parrot-in-the-machine-the-ai-con-bender-hanna/
1•almost-exactly•7m ago•1 comments

Fictional K-pop bands zoom to top of US music charts

https://www.bbc.com/news/articles/clyl1zyv1y2o
1•ranit•8m ago•0 comments

Show HN: Refinery – stop hardcoding test cases

https://www.testrefinery.com
1•atultw•11m ago•0 comments

Show HN: I built a tool that reveals hidden APIs the browser hits (open source)

https://github.com/hyperbrowserai/hyperbrowser-app-examples/tree/main/deep-crawler-bot
1•aparupganguly•13m ago•0 comments

Headless, zero dep. modal stack manager for React

https://github.com/AlexDemzz/react-easy-modals
1•alexdemzz•17m ago•1 comments

Pud's Small Batch Headphones

https://pud.com
1•keyle•18m ago•0 comments

When Will Robots Go Mainstream?

https://joincolossus.com/article/when-will-robots-go-mainstream/
1•almost-exactly•20m ago•0 comments

Why most Kimchi Premium trackers are basically useless

https://www.coinapi.io/blog/how-coinapi-helps-with-tracking-the-kimchi-premium
1•adafromcoinapi•23m ago•0 comments

Surflow: Tab Tagging System in Tree

1•asam-0•25m ago•0 comments

Post-Scarcity Blues [video]

https://www.youtube.com/watch?v=q_t3h2AZ0KY
1•doener•27m ago•0 comments

Show HN: vGhost – Vue directive to unload offscreen elements and maintain layout

https://github.com/isaact/vue-infinity
1•tewolde•28m ago•0 comments

Sombrahq/sombra-CLI: a CLI to scaffold and update projects from production code

https://github.com/sombrahq/sombra-cli
1•yunier-rojas•29m ago•0 comments

Man goes viral after working for four startups at the same time

https://www.nbcnews.com/tech/internet/man-goes-viral-working-four-startups-time-rcna216890
7•gshakir•30m ago•6 comments

Baidu Researchers Propose AI Search Paradigm

1•msolujic•31m ago•0 comments

Cats Confuse Reasoning LLM: Query Agnostic Adversarial Triggers for Reasoning

https://arxiv.org/abs/2503.01781
1•ipnon•35m ago•0 comments

Nonce CSP bypass using Disk Cache

https://jorianwoltjer.com/blog/p/research/nonce-csp-bypass-using-disk-cache
2•Bogdanp•42m ago•0 comments

Air India Accident Discussion Organised by Subject

https://paulross.github.io/pprune-threads/gh-pages/AI171/index.html
4•parados•45m ago•1 comments

Parsing layout, or: Haskell's syntax is a mess

https://amelia.how/posts/parsing-layout.html
3•fanf2•46m ago•0 comments

Show HN: Board Foot Calculator

https://board-foot-calculator.org
1•hapJam•47m ago•0 comments

Slowly listing all games every made that I can

1•jamesandthewolf•48m ago•0 comments

New evidence that some supernovae may be a "double detonation"

https://arstechnica.com/science/2025/07/new-evidence-that-some-supernovae-may-be-a-double-detonation/
1•Archelaos•51m ago•0 comments

SZ Games:a platform offering over 1k free online games

https://sz-games.online//
1•jsonchao•53m ago•1 comments

'I'm being paid to fix issues caused by AI'

https://www.bbc.com/news/articles/cyvm1dyp9v2o
1•lmc•54m ago•0 comments

AI promises to free up time. Might it stop us learning, creating and exploring?

https://www.theguardian.com/commentisfree/2025/mar/30/ai-promises-to-free-up-time-but-what-if-it-spares-us-from-learning-writing-painting-and-exploring-the-world
1•thinkingemote•1h ago•1 comments

Steam has been flooded with games stolen from itch.io

https://www.gamepressure.com/newsroom/steam-is-dealing-with-spam-valves-platform-has-been-flooded-with/zb811a
1•todsacerdoti•1h ago•0 comments

Vector Database from a Beginners POV

https://mrinalxdev.github.io/mrinalxblogs/blogs/vector-db.html
1•sebg•1h ago•0 comments

Show HN: InvoiceFast – Generate clean invoices instantly, pay per use

1•skyzouw•1h ago•0 comments