My Developer Roadmap: 🏎️ 2024: Go (Current daily driver) ✅ 2025: Rust 🚧 2026: Zig

I am getting a head start on 2026 and I am loving some of the design decisions behind Zig so far. It feels strict, but in the best way possible.

Unpopular opinion #1: Variable shadowing is a bug, not a feature.

As I kick off 2026 by learning Zig, I’m realizing how much mental overhead other languages create by allowing you to re-declare variables in inner scopes. Zig removes this entirely. It stops errors before they happen.

Unpopular opinion #2: Ignoring function returns is an anti-pattern.

Zig refuses to compile if you ignore a return value. This aligns perfectly with NASA’s “Power of 10” rules for safety-critical code.

Rule 7 (which I wrote about in the article below) states: “Each calling function must check the return value of non-void functions, and each called function must check the validity of all parameters provided by the caller.”

I find it a best practice and try to follow it regardless of the language. Zig just makes it mandatory. Go makes this difficult because it is far too easy to silently ignore return values on standard library functions.

Go and the Power of 10