One of the most frustrating things about null is that it has so many possible meanings:
- We don’t plan to provide a value here, so use a default instead
- We plan to provide a value, but memory for this value hasn’t been allocated yet
- The memory has been allocated, but we haven’t attempted to compute/retrieve the proper value yet
- We are in the process of computing/retrieving the value
- There was a code-level problem computing/retrieving the value
- We successfully got the value, and the value is “the abstract concept of nothingness”
- or the value is “please use the default”
- or the value is “please try again”
And so on. “Null” probably has more different meanings based on context than the word “fuck”.