Many of these meanings seem to be captured in some modern solutions already:
- 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
Futures?
- There was a code-level problem computing/retrieving the value
Exception? Result
monads? (Okay, yea, we try to avoid the m word, but bear with me there)
- We successfully got the value, and the value is “the abstract concept of nothingness”
An Option
or Maybe
monad?
- or the value is “please use the default”
- or the value is “please try again”
An enumeration of return types would seem to solve this problem. I can picture doing this in Rust.
I think you’re missing the point. It’s exactly cause Microsoft created it that people get worried about it. The EEE is an actual phrase found to be used internally in Microsoft, albeit being some time ago. Though there’s no knowing whether it’s still circulating now, it’s hard to trust them to be good stewards forever.