How do zero values help here? Zero values would seem to me to make nil pointer panics <i>easier</i> to run across, because it means the language can silently insert nil into your data structures or assign nil to your variables without any syntactic indication.<p>&gt; The problem with having nil is when you expect a value to be either a valid pointer or nil to indicate an error, and you forget to check for an error.<p>That&#x27;s not the problem with null pointers. Null is used all over the place for non-error conditions. The problem is when an object legitimately might or might not be present, but the type doesn&#x27;t encode that fact, so some code mistakenly assumes that the object is always present when it isn&#x27;t.