Tuesday, October 27, 2009

Yes, No, NULL

There's a concept in computer programing that, despite people's claims to the contrary, actually does translate to human interaction. Booleans.

A boolean is a type of variable. A variable is something that can have a value or no value. It's basically a label for something else. For instance. I see something that no-one has ever seen before. It exists by all means of physical measurement (sight, sound, touch, etc) but it has yet to be categorized. It requires a label... something that describes it. We use labels ALL the time. Human, Dog, Wheelbarrow, Tissue, Cassette, Bumblebee, etc. NOUNS!

Regardless, it's just a label used to describe something. That is a variable. It's a label that's used to describe SOMETHING.

Now, variables come in all types. Types are yet ANOTHER label. It's something to further describe that thing we're trying to desribe. There are String Variables which means that whatever the variable is pointing at is made up of characters like letters, numbers, punctuation marks, etc. There are Integer Variables which means that what the variable is pointing at is a whole number within a certain range.

Then there are Boolean Variables. Boolean Variables mean that what the variable is pointing at is either a Yes or a No, a True or a False, a 1 or a 0.

Now... I want to get back to something that I said at the beginning of the second paragraph. A variable is something that can have a value ... or no value.

Yup, EVERYTHING can have NO VALUE. If you think of a variable like a box, the box may be specifically designed to hold something. But it could be holding NOTHING. This means that the contents of that box haven't been filled yet.

Now... boolean variables are like yes/no questions.

"Do you love me?"
"Are you going to come back?"
"Are we going to keep acting like this?"

These are yes/no questions at their root... the answer is whatever the variable (or question) is pointing to. The problem is that even though it can only be Yes or No... it can also be NULL. Meaning, there is no answer yet.

Assumption #1: NULL means YES. This is obviously not the case even though it's been burned into our brains for so long. Consider the following latin phrase often used in law: Qui tacet consentire videtur which translates to "He who is silent is understood to consent" or "You're not defending yourself or disagreeing or providing any proof to the contrary so you must be agreeing with what I said."

This is crap.

Assumption #2: NULL means NO. This is obviously just as fallacious as the first. However, this the next step in human reasoning. It goes like this: If NULL doesn't mean yes... and Booleans can only have a value of Yes or No, NULL must mean No.

This, too, is crap.

NULL simply means, I don't know yet. I know what TYPE of answer belongs here, but I don't know WHICH answer belongs here yet.

These questions are ALSO based on states. And those states are always in flux.

"Is there someone named 'Fancy Mr. Stinkyteets' on this planet?"

Can you really answer that question with a Yes or No answer? Probably not without researching it, verifying it and proving it. Even then, considering the nature of change on this planet, can you ever come up with a 100% verifiable answer of "No?" "Well, there WAS... but he died yesterday... but there might be another somewhere, or someone I asked before might have changed their name by now."

"Is there a dinosaur in my back yard?"

When asked during the Jurassic period, the answer to that could be Yes. Today, more than likely that would be No.

"So what's all the hubbub about anyway? Why go through all this? You're boring me already!" ... Right?

If someone says, "I don't know" don't make the mistakes I did by assuming this answer to be synonymous with True or False. Accept that True and False are simply concepts that help us determine actions. Accept that "I don't know" (or NULL) is simply something to indicate that action is required before an answer can be given.

Also, don't be afraid of True, False or NULL. They've existed since time immortal and will continue to exist even after we are dead and buried. Understand how these concepts play out in our lives to adjust our emotions, actions and motivations.

So... if you're struggling today... trying to figure out the answer to a question whose answer you KNOW is NULL at the moment, don't fret and don't worry about it. It may be YOUR question... but it's not YOUR answer. The answer will be there eventually.


1 comment:

Luke said...

Jenna! I really appreciated your blog today - I say "I don't know" a lot and it many times gets grouped with the yes/no dichotomy - this is so frustrating! "I don't know" does not mean yes or no...more like "I need to wait and see".
I recently say a guy speak about active non-violence and he was relating a story about a pacifist who was asked if someone was violent to one of his family members, if he would react with violence and he responded: "I can't tell you what i would do - I can only tell you what I have done." I think that really hits the nail on the head for me.