I've been using zig for a week now. When I see a construct like writer I find myself looking for complexity that is just not there. I'm pleasantly surprised by the zig language design decisions. Initially I thought allocators were a pain but now I hardly notice them after I set up the struct init and deinit. And the myriad of zig pointer and slice types make me appreciate how C has overloaded the use of certain constructs in non-intuitive ways that we've just come to accept over the decades. I'm more impressed with zig than the last half dozen languages I've picked up - and the C/C++ interop at the language and compiler level is just the icing on the cake.