- typesafe metaprogramming (usually no void* type erasure)
- sane legibility of complicated types
- (for beginners) not having to learn/deal with make
- corrects the long long mistake (yes, I get that everyone uses inttypes.h now)
- alignment aware pointer types
- null aware pointer types
- null terminated string aware pointer types
- slices (fat pointers?) default
- sane cross-compilation
- errors returned as values, no errno weirdness
- no pass-by-value/pass-by-reference ambiguity (const correctness by default)
At least four of these are footguns my highly experienced coworkers would have avoided this last week of work alone.
It's possible that as a longtime c developer, you have internalized the biggest problems with c, especially the ones that trip up beginners. Maybe zig is not for you. If you start using zig, you just may start wanting to throw your desk out the window every time you have to go back to c, which is not really worth the effort/employmemt sanity risk.