The Tradeoff Is Real
The honest answer: if err != nil is verbose. Languages with Result<T,E> or exceptions are less noisy. But Go's approach means you cannot accidentally ignore an error (if you assign to _, you made a deliberate choice), and error paths are always visible in code review. Different tradeoffs, not wrong ones.