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 top 5 most admired on Stack Overflow. There’s just one thing missing: 1.0. Andrew Kelley explains why.

Vitaly talked to Andrew about:

  • Why Zig has no 1.0 after a decade, and why that’s deliberate
  • Why Zig left GitHub
  • Why Zig banned AI from Zig
  • What makes Zig better than C (and why every other C replacement failed)
  • Andrew’s take on Open Source

It’s a long interview, but I found it very interesting and worth it.

  • FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    9
    ·
    2 days ago

    It’s definitely better than C but I’m still unsold on the memory unsafety. Especially after the supposed answer to Bun’s memory bugs was “just never dynamically allocate”.

    comptime is definitely neat and there are some other nice features but tbh it seems like the only true advantage it has over Rust is compile time, and only for incremental compilation. Is that enough? I would say probably not.

    • TehPers@beehaw.org
      link
      fedilink
      English
      arrow-up
      5
      ·
      2 days ago

      Especially after the supposed answer to Bun’s memory bugs was “just never dynamically allocate”.

      The answer to Bun’s memory bugs was to follow a style guide. Not allocating dynamically stems from the style guide used by a mission-critical financial transactions database. Bun didn’t have to use that style guide, and honestly it would have been overkill. They could have easily adopted a different one, modified one to suit their needs, or made their own.

      In general, I agree that Rust does a far better job at preventing these kinds of bugs than a style guide does, but Bun didn’t even try one and decided instead to ask Claude to rewrite it in Rust.

      • FizzyOrange@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        16 hours ago

        To be honest I don’t see how a “style guide” is going to help. C++ has had all sorts of guidelines and style guides for decades and it helps a bit but… not really.

        What does the Zig compiler’s own style guide say about avoiding memory errors? As far as I can see nothing?

        Bun didn’t even try one

        Is this style guide not a style guide?

        • TehPers@beehaw.org
          link
          fedilink
          English
          arrow-up
          1
          ·
          11 hours ago

          To be honest I don’t see how a “style guide” is going to help. C++ has had all sorts of guidelines and style guides for decades and it helps a bit but… not really.

          It does help though without requiring a complete rewrite in another language, which is prone to causing entirely new issues and reintroducing old, fixed ones.

          Like I said, Rust does a much better job at avoiding these. “Claude rewrite this in Rust” doesn’t give you those benefits for free.

          Is this style guide not a style guide?

          It’s a start, but doesn’t say much about methods to avoid the memory issues that they supposedly had issues with. If they intended to actually use it, maybe it’d have more than 7 commits from 8 months ago. Maybe they would have updated it with patterns to prevent new bugs in the future based on the bugs they ran into. That didn’t happen, though.