Comment

Comment by CraigJPerry

Option type was my favourite solution to this until i was introduced to nil punning. I still haven’t found a more pragmatic approach.

Some languages allow you to say “this can never be null”, and in general, i find that really helpful and ergonomic but there’s cases where it’s not practical and you have to permit null and at that point, you’ve sunk the boat.

Strict non-nullable with Option types has been moved to 2nd place solution since i experienced nil punning.

Treat nil as a value, like in this article’s example of the array being terminated by nil. Don’t make it an exception to compare against nil. But don’t ascribe any other meaning to the value - that means no matter the context, nil can semantically fit your use case.

It’s better than option primarily because it means a lot less code. You delete all “is this value present?” type code from your codebase because encountering nil in your happy path is rendered harmless.

Very nice.

parent CraigJPerry 4 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton