Notes on the Zig programming language

Sun Feb 04 2024E.W.Ayers

Created at: 2024-02-04 Last edited at: 2025-02-02

I had the chance to work on some Zig code over the weekends:

Overall it's been a pleasant experience. It's much easier to work with than C and C++. I know that I should really just learn Rust instead but I'm just not excited by it. Zig really scratches an itch. The previous choices for system programming languages are:

Zig is just C with

Comptime is massive. I get giddy thinking about it. It removes so much abstraction trash that you have to put up with in other languages:

I'm not going to explain it here, have a look at the links in the next section to find out more.

1. Links about Zig

I'll keep updating this section.

2. Things that are annoying but are deliberate choices

This github issue is interesting becuase it's so divisive: compile errors for unused things. It's a 1:2 ratio upvotes to downvotes on having unused vars be a compiler error. I'm on team Kelley for this particular decision, but this issue tells me is this is Kelley's project. Leading an OSS project is a tough job. It makes me worry about forks and ecosystem fragmentation.

3. Things that are annoying because they are not mature

4. Things that are amazing

5. If I was designing zig

I want to contribute more to the docs of Zig. There is something about Rust that meant it never caught my excitement, I don't really get it because it has everything I want. Meanwhile I am really excited about Zig despite all the teething problems and issues. I don't get it. Maybe I am over functional programming.