To follow up on my "it's not a bug thing"..

"if ( == $null)" is ambiguous. there is no denying that.

The problem with ambiguity is this: YOU might think that "if ( == $null)" means "if empty string equals $null".. YOU might. but *I* might not. In this case, it's obvious-- but what about:

if ( == isnum )

What then? am i testing if == is a number? or am i checking "if an empty string equals 'isnum'"? Which one is it? You might say-- it doesn't make sense to test '==' as a number.. but then you'd be thinking as a human, not as a computer.. computers don't (and shouldn't) think like humans for a simple reason: I might *actually* want to test if == isnum, this may have arisen from the same case as your if ([username] == $null) situation, in which i do:

if ([operator] == isnum)

I might also be testing other operators.. maybe !isnum, which would have made even more sense in this scenario. But it doesn't matter what's "sensical", because that's not for the computer to decide. Computers should not left to be making decisions that we should be making as humans with brains.. this is why ambiguity sucks.

So you can see, it works in one simple scenario... but it doesn't account for all cases. It clearly doesn't make sense in the long run.


- argv[0] on EFnet #mIRC
- "Life is a pointer to an integer without a cast"