You're definitely right — nil / NSNull is confusing to newbies, but Ruby is just as bad. The way it handles UTF8 is somewhat backwards, and the fact that symbols and strings are different (but sometimes used interchangeably) can cause 'gotchas' for newbies too. I'd argue that your language of choice is really dependent on which set of baggage you've internalized :-)