Zig: All Package Management Functionality Moved from Compiler to Build System
79 points
by tosh
5 hours ago
| 4 comments
| ziglang.org
| HN
arikrahman
2 minutes ago
[-]
A very well-reasoned separation of concerns.
reply
vitaminCPP
1 hour ago
[-]
I've read somewhere that the longer-term goal is to move the build system into a WebAssembly VM. If so, this is incredible.
reply
jswny
29 minutes ago
[-]
What’s the advantage of that for building?
reply
himata4113
13 minutes ago
[-]
sandboxing, which feels a weird way to achieve that. Although the reason for it to begin with is because builds systems can typically access raw memory and disable artificial restrictions.

I think this is a bad move since the real fix to these attacks is a sandboxed environment rather than a single tool implementing sandboxing.

reply
cornstalks
2 minutes ago
[-]
How would you do it, then? Sandboxing a project's build.zig via Wasm (and the various dependencies's build.zig files) seems like a great improvement to me and is how I would personally try to sandbox the build process.
reply
malkia
30 minutes ago
[-]
Everytime I see a language creating their own package system, all I can think of it how much we've missed here.

The only exception is C/C++, where there is none established that well, for good or bad.

These choices may create later super-convoluted processes when you have to mix more than one language together.

Packaging systems makes thing easy, but complicate further the line if another language needs to be used.

reply
forrestthewoods
26 minutes ago
[-]
The world has yet to standardize on a good crossplatform polyglot build system.

The only real such build systems are Buck and Bazel. But they have way too much baggage from their overlords.

It’s a shame.

reply
himata4113
9 minutes ago
[-]
build systems using llvm as the backend are getting there, but zig is making their own compiler too.
reply
nesarkvechnep
1 hour ago
[-]
Development of Zig feels so wholesome.
reply
edoceo
1 hour ago
[-]
It's kinda fun to build with too. Making a bootloader, doing some UEFI things. Much easier (for me) than when trying with C. But also, new&shiny and learning is fun - increases my bias.
reply
SwellJoe
1 hour ago
[-]
The thing about Zig in these times is that it proves that software development as a craft is not dead or replaced by LLMs.

Even though I use LLMs every day, and have to admit they're remarkably good at many classes of problem, I don't want a programming language built by an LLM. Every line of code in a programming language, every decision, every trade off, matters. A vibe-designed/vibe-coded programming language would be a disaster. I don't know how else to put it, and I've never seen any model produce code that would convince me otherwise (even Fable, which is, in fact, a notable improvement over the prior best models). The models don't want anything. They don't have meaningful opinions. They don't know what comfortable vs. uncomfortable feels like in a language (or in a GUI or CLI interface at sufficient levels of complexity).

You can't get a language like Zig out of an LLM without simply copying Zig, and even then it would be a copy that is worse. (I mean, I'm assuming "copy with an LLM" means, "have an LLM write the spec and another build the language to the spec", not literally `cp` the source tree.)

reply
ChrisGreenHeur
1 hour ago
[-]
Sure a human would write the language spec and the llm implement it
reply
foltik
1 minute ago
[-]
Such a spec would never survive contact with reality.
reply