Why Zig Isn’t 1.0 (Yet)

Check your BMI

Most programming languages follow a familiar trajectory: early experimental releases, rapid iteration, and then – at some point – a 1.0 version that signals stability and the potential for serious adoption.

Zig hasn’t followed that well-trodden path. What could be the reason?

Andrew Kelley quit his job in 2018 to build a programming language. Eight years later, Zig powers Ghostty, TigerBeetle, and Uber’s cross-compilation. It’s in the top five most admired languages on Stack Overflow. But there’s just one thing missing – a 1.0 release. For many engineers, that raises a rather obvious question: “What’s taking so long?” And perhaps more importantly: “Is that a cause for concern?”

In a recent conversation with JetBrains, Zig creator Andrew Kelley dealt with those questions pretty directly. And the answers might just surprise you!

🎥 Watch the full interview here → https://jb.gg/andrew-kelley-zig-interview

A familiar milestone with an unfamiliar definition

In most ecosystems, version 1.0 carries clear implications of stability, maturity, and a commitment to backward compatibility. It’s the signal many teams wait for before adopting a technology in production.

But as Kelley points out, that definition is less clear-cut than it might first appear. A 1.0 release, at its core, is simply a promise – a guarantee that future changes won’t break existing code. Beyond that, it says surprisingly little about whether a language is actually ready for long-term use.

Different languages have interpreted that milestone in very different ways. Some locked things down early and avoided making significant changes thereafter. Others shipped 1.0 and continued evolving rapidly under the hood. The version number stayed the same, but the language kept on changing.

Zig has taken an entirely different route.

Deliberately not shipping

What stands out in Kelley’s perspective is that Zig’s missing 1.0 isn’t an oversight or a delay – it’s a deliberate choice.

Rather than rushing to declare stability, the project is optimizing for something else: getting the fundamentals right before locking them in.

That decision becomes easier to understand when you look at how Zig is built and maintained. Unlike many modern language ecosystems, Zig isn’t backed by venture funding or driven by corporate timelines. It’s developed by a small, independent team under a nonprofit foundation, supported largely by individual donors.

That structure removes a common source of pressure for its developers.

There’s no need to hit growth targets, no requirement to ship a milestone release just for optics, and no external force pushing the project toward a premature definition of “done”. The result is a development process that can afford to be patient, and in some cases, even intentionally slow.

But that patience naturally comes with trade-offs.

Vitaly Bragilevsky and Andrew Kelley during the interview shoot

The cost of waiting

There’s little doubt that a 1.0 release would accelerate Zig’s adoption. Many companies and developers use this label as a gating signal or a synonym for trust.

Kelley acknowledges this openly. When Zig eventually reaches 1.0, adoption will likely jump.

And yet, the project continues to prioritize long-term design over short-term growth.

That tension – between adoption and attention to detail – is where Zig’s approach becomes particularly interesting. Instead of asking “How quickly can we get to 1.0?”, the project is asking a different question:

“What would we regret locking in if we shipped it today?”

That unorthodox yet refreshing framing shifts the goal from speed to permanence.

A different philosophy on progress

Zooming out, this approach isn’t just about version numbers – it reflects a broader philosophy that is visible throughout Zig’s design.

Where some ecosystems embrace a “ship fast, fix later” mentality, Zig is trying to find a middle ground that will enable it to deliver powerful capabilities with minimal complexity, without accumulating long-term design debt.

It’s an approach Kelley describes as aiming to “do more with less”, which translates to finding leverage in simplicity rather than layering on features or abstractions.

That philosophy extends beyond the language itself. It shapes decisions about tooling, dependencies, and even community processes. The central theme is consistency: Avoid unnecessary complexity now, so you don’t have to support it forever.

From that perspective, Zig’s delay in reaching 1.0 isn’t hesitation – it’s restraint.

Rethinking what “ready” means

All of this raises a broader question that goes beyond Zig: What does it actually mean for a technology to be “ready”?

If 1.0 is just a compatibility promise, is it the right signal to rely on? Or has it become a proxy for something more nuanced, like trust, ecosystem maturity, or long-term stability?

Zig’s approach challenges a fundamental premise behind the question. It suggests that readiness might not be a single milestone, but the result of a series of deliberate decisions about what not to finalize too early.

Whether that approach ultimately accelerates or limits adoption remains to be seen.

From left to right: Vitaly Bragilevsky (host), Andrew Kelley (guest), and Oxana Mazurchak (project owner and showrunner)

Watch the full conversation

As interesting as all this has been, it’s just one thread of a much wider discussion. In the full interview, Andrew Kelley dives into topics ranging from Zig’s positioning relative to C and Rust, to its stance on AI-generated contributions, to what the next decade of programming might look like.

If you’re interested in where systems programming – and language design more broadly – might be heading, it’s well worth checking out. Watch the full video now!