Zig’s Long Wait for 1.0: Andrew Kelley Demands Perfection Over Speed

Andrew Kelley has spent a decade building Zig. The language he created in 2016 still sits at version 0.16. No 1.0 release looms on any firm calendar. And that delay comes by design.

Kelley spoke at length in a recent interview. He wants the language that ships under the 1.0 banner to stand as an uncompromising labor of love. The Register captured his stance clearly. “When we tag 1.0 it will be a true, uncompromising labor of love,” he said. The promise of backward compatibility that follows such a tag carries weight. Kelley intends the language to serve for the next 50 years.

His perfectionism traces back to a personal project. Kelley set out to write a digital audio workstation. He tried JavaScript, Go, C++ and Rust. Each brought frustrations. Go’s garbage collector introduced unpredictable pauses. C++ memory bugs consumed weeks of debugging. Rust’s borrow checker rules slowed him for a full month on something as basic as font rendering. Zig grew from those specific pains. It aims for C-level performance without the preprocessor headaches or hidden costs.

Production code already runs on Zig. TigerBeetle uses it for a financial transaction database. Ghostty, a GPU-accelerated terminal emulator, counts on the language. Bun, the JavaScript runtime, began in Zig though its team later shifted parts toward Rust. Wikipedia records these adopters and notes the current stable release as 0.16 beta, dated April 14, 2026. The language remains pre-1.0. Breaking changes still arrive with new versions.

Recent work shows steady progress. On May 26, 2026, Kelley announced a major build system overhaul in the official devlog. The change splits the maker process from the configurer. Previously a single bloated debug process handled everything. Now build.zig compiles to a small configurer that builds a graph in memory and serializes it. The parent process caches the config and launches an optimized Release-mode maker. Benchmarks show roughly 90 percent reductions in wall time, CPU cycles and other metrics for simple commands like zig build -h. “This devlog entry is essentially a preview of the upcoming release notes,” Kelley wrote. The 0.17.0 cycle should arrive in about two weeks from that post.

Earlier in the year Matthew Lugg merged a 30,000-line redesign of type resolution. Released in March 2026, it makes analysis lazier. Unused types no longer pull in unrelated code. Namespaces like std.Io.Writer compile cleanly even with errors elsewhere. Dependency loop messages grew more helpful, pinpointing exact origins and suggesting fixes. Incremental compilation with the LLVM backend also stabilized in April. Users can now test it with flags like -fincremental –watch.

February brought updates to standard I/O. Kelley implemented versions based on io_uring for Linux and Grand Central Dispatch for macOS. These rest on userspace stack switching. The approach remains experimental. It improves error handling and sets the stage for async and await to return in a refined form. Package management saw practical gains too. Dependencies now store locally in a zig-pkg directory next to build.zig. A global cache holds recompressed tarballs. A new –fork flag lets developers override packages temporarily without permanent commits. The goal was simpler tinkering when upstream breaks.

Other shifts point toward self-reliance. Zig now prefers native Windows APIs over kernel32.dll wrappers in many cases. The zig libc subproject deletes redundant C code, replacing it with Zig wrappers. Hundreds of files vanished already. These moves reduce third-party dependencies and shrink binaries. Kelley once described eliminating LLVM from the core toolchain as rectifying a mistake. That transition continues.

The Zig Software Foundation backs this work. It operates as a U.S. 501(c)(3) nonprofit with roughly $670,000 in annual income from diverse sponsors. No single donor holds sway. Kelley draws a salary around the median for senior engineers in New York. The foundation stays lean. It funds a small team of about five. Expansion holds little appeal. In the JetBrains interview covered by Hacker News, Kelley explained his stance on a hypothetical $100 million gift with no strings. He lacks interest in managing a large organization. The money would likely sit in a conservative structure to secure the project for a century.

That independence shapes other choices. Zig left GitHub at the end of 2025 for Codeberg. The move drew controversy. GitHub’s continuous integration had simply stopped working reliably for the project. “We’re here to write software,” Kelley said. “If our continuous integration server doesn’t work, we need to find one that does.” Codeberg, a German nonprofit, felt more stable than corporate platforms. The interface mirrors GitHub closely. Migration costs stayed low. The project also stepped back from Reddit and Twitter years earlier. Attention there yielded limited value for actual code quality or adoption.

Kelley’s views on artificial intelligence stand out for their firmness. Zig’s code of conduct bans AI-generated issues or pull requests. Such contributions are “invariably garbage,” he told the interviewer. They waste reviewer time. The small team values mentoring humans who learn and grow into long-term contributors. AI output is non-deterministic. It always needs review. And the models come from a handful of companies that control the closed-source infrastructure. “I’m not going to go from using my own computer and my own electricity, in order to use closed-source programming on someone else’s computer through the network, that I have to pay for monthly,” Kelley said. “To me, that is an insane proposition.”

He hears the phrase “surprisingly well” attached to AI-generated code. That standard falls short. Software should aim for uncompromising perfection. The policy protects the community’s educational mission. Good contributions involve people explaining concepts to each other. Outsourcing that process to large language models defeats the purpose. Kelley acknowledges some developers, such as Ghostty’s Mitchell Hashimoto, use AI assistance productively. But the project’s rule remains absolute. A YouTube discussion posted May 27, 2026, and widely shared on X, explores these points in depth. Titled “Zig 2026: No-AI Policy, $670K Foundation, Left GitHub and Why Zig Isn’t 1.0,” it features Kelley explaining the deliberate pace.

Critics point to the risks. A language that changes between 0.11 and 0.13 demands caution from teams needing five-year stability. Yet real users already ship code. They report benefits in binary size, compile speed and C interop. The devlog entries reveal concrete gains in usability and performance. Package overrides ease dependency headaches. The build system rewrite delivers faster feedback loops. Incremental compilation reduces iteration time.

Kelley rejects the “worse is better” philosophy. Popularized by examples like early PHP or Go, the idea favors rapid shipping followed by later fixes. He prefers doing more with less. Minimal compile-time complexity should yield maximum benefit. Cross-compilation should require one flag, not platform-specific configuration files. This mindset explains the long road to 1.0. Stability cannot arrive with known flaws baked in. Better to fix them first.

His daily tools reflect similar restraint. Kelley codes in a terminal with Vim. He has never used JetBrains IDEs. They are closed source. That choice aligns with the project’s values. So does the decision to host on a nonprofit forge. And the refusal to accept AI pull requests even if some might pass muster. Review burden matters. Time is the scarcest resource.

Recent online discussion echoes these themes. A Hacker News thread on the JetBrains video gathered comments within hours of posting. Some praised the independence. Others wondered whether the perfectionism delays adoption too much. Production projects like TigerBeetle suggest the language already delivers where it counts. The foundation’s funding model insulates it from pressure to ship prematurely.

Zig’s path diverges from languages that chased rapid versioning or corporate backing. It grows through small, focused steps. The May build system changes preview what 0.17 will bring. Type resolution improvements from March reduce surprise errors. I/O experiments lay groundwork for better asynchronous code. Each piece fits a larger vision. Kelley wants predictable performance, readable syntax and zero hidden control flow.

Whether that vision reaches a 1.0 tag in 2026 or later stays open. The creator offers no date. He points instead to the quality of the final product. When the tag lands, the language should require no apologies. It should compile old code without complaint for decades. That bar sits high. The work continues. Short release cycles for 0.x versions let the team iterate freely. Real usage surfaces issues early. Contributors who invest time help shape the result.

Industry observers watch with mixed feelings. Systems programmers value the explicitness and speed. Language enthusiasts admire the resistance to fashion. Corporate adopters hesitate without a stability promise. Yet the small foundation and dedicated users suggest Zig can afford patience. It answers to no quarterly earnings call. Its roadmap bends toward correctness over calendar deadlines.

Kelley built Zig because existing tools failed his audio workstation at a human level. The same standard now governs its maturation. Perfection is the goal. Everything else follows. The language that eventually reaches 1.0 will reflect that choice. Whether it arrives soon or not, the discipline behind it already sets Zig apart.

1 thought on “Zig’s Long Wait for 1.0: Andrew Kelley Demands Perfection Over Speed”

  1. Pingback: Zig’s Long Wait For 1.0: Andrew Kelley Demands Perfection Over Speed - AWNews

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top