I strongly disagree with the conclusion of the article. Even if I could understand that “unknown” gender is somewhat confusing and could lead to poor data quality, it is highly irrelevant to fill all optional columns of your data with 0 or space. I hate much more queries like where x = ‘ ‘, but because a developer hated nulls at that time.
Also deeply stupid are datamodels where the child table (cardinality 1:0,n) has ID=-1 for inexistant childs, which is completely misleading, for both dba and optimiser.
I do not have nulls. The one I do not like too much is length(”) is null, but as written in doc 7,8,8i,9,10,11, it may change in a next release 👿
Nulls may be a problem to relational purists, but they are a practical neccessity for designing real systems for real people. The fact is that some values are in fact unknown. Will you prevent entry of the values that are known, just because some of the values are not known? And yes, nulls have their quirks (I wish that null=null), but the smart developer understands how nulls work and takes them into account.