That never stopped JavaScript, Python and friends from giving them equal truthiness.
>>> NULL == 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'NULL' is not defined
Even None, which is as close to NULL you are going to get in Python is not 0. >>> None == 0
False >>> 'truthy' if None else 'falsy'
'falsy'
>>> 'truthy' if False else 'falsy'
'falsy'
>>> 'truthy' if 0 else 'falsy'
'falsy'Implicit casts -- including to booleans -- are dangerous, but if you try to write APIs to try to avoid every bad thing that might happen with naive use of implicit casting in every language that might be used to consume your API, you won't be able to do anything at all.