I started using Zig because C++ was making me want to quit programming entirely, and Rust's borrow checker felt like doing taxes. Andrew Kelley created Zig in 2016 after hitting the same wall most of us hit: C is fast but insane, C++ is powerful but a nightmare, and Rust is safe but sometimes too clever for its own good.
Zig's pitch is simple: what if we kept C's directness but removed the parts that make you want to throw your laptop out the window? No hidden bullshit. If it allocates memory, you see it. If it calls a function, you wrote that function call. No surprises.
The Three Rules That Actually Matter
No Hidden Control Flow: If the code looks like it calls one function, it calls exactly one function. Period. No C++ operator overloading bullshit where +
secretly calls some 500-line template function. No hidden exception unwinding. What you see is what you get.
No Hidden Memory Allocations: Every malloc is right there in your face. The standard library makes you pass an allocator to functions that need memory, which sounds annoying until you've spent 3 days debugging a memory leak in a \"simple\" C++ string operation.
No Preprocessor Madness: Instead of C macros that turn your code into cryptic symbol soup, Zig lets you run actual Zig code at compile time. It's like templates but your IDE can actually understand what's happening.
In practice, you spend less time wondering what the hell some function is doing and more time fixing your actual bugs instead of fighting the compiler.
Who's Actually Using This Thing?
Zig's been gaining real traction since 2020. The Zig Software Foundation has actual funding now, including a massive $300k donation from Mitchell Hashimoto (HashiCorp founder) in October 2024. That's serious money. When HashiCorp's founder drops 300k, he's not just fucking around.
Real companies using Zig include TigerBeetle for their financial database (because when you're handling money, you want predictable performance), various embedded projects where every byte matters, and game devs who are tired of C++'s compile times.
The 0.15.1 release in August 2025 finally fixed some of the I/O pain points that made me want to throw things at my monitor. Still pre-1.0, which means your code will break every few months, but that's the price you pay for riding the bleeding edge.
The cross-compilation story is where Zig actually shines. Want to build for ARM from your x86 laptop? Just change the target. Want to link against C libraries? Import the header directly, no FFI bullshit required. It mostly works, though you'll still hit random linker errors on obscure targets.