> A language with null references is exactly like a language with option types, where every reference value is by default optional.
Yes.
> Removing this default does not increase complexity for the user.
Yes, it does. They need to be aware of the semantics of the option mechanism, how to specify whether a type is optional, and when that is appropriate. They must also perform checks when converting values from optional to non-optional types.
In Go the choice is made for you: reference types may be nil.
Yes.
> Removing this default does not increase complexity for the user.
Yes, it does. They need to be aware of the semantics of the option mechanism, how to specify whether a type is optional, and when that is appropriate. They must also perform checks when converting values from optional to non-optional types.
In Go the choice is made for you: reference types may be nil.