Apology of the NULL pointer

"Nobody likes me. I'm despised everywhere I go. I am accussed of being the responsible of many problems and even calamities. Some say that I am accursed. Some even say that I am some kind of disease that needs to be cured. When people see me the first thing they think is "oh no, not again...". Nobody has a kind word for me. People spends hours and hours finding ways to make sure that I am not welcomed. They spend incredibly amounts of time looking for ways to avoid me, to squash me and to make sure I cannot even get close. Even worst, some people has managed to make me invisible to their eyes, so even if I appear they do not see me. If I manage to get close and say "hi", they do not say "hi" back to me. In fact, whenever I say something people look at me very weirdly. People has been told since the beginning that I am the worst thing that could ever happen to their software.
They do not understand me. And in fact I think nobody understands me. But that is ok, because no matter what I will still be around after your software is done. I will still be around when your software becomes outdated. In fact, you can count on me being around all the time. And yet I'm not haunting you. If you just stopped for a while and listened to my message, you will see that I can be your best friend. My mission is very simple: if I appear in your software it is not a sign that your software is badly designed, I'm just pointing out a case that was not considered before. If you could just understand that sometimes it is much better that I come and say "hi" than to close the door to me, you will realize that we can work together to make your software the best software ever. So please, stop cursing me and for once try to listen to my message."

The text above was inspired by a conversation with some colleagues regarding when to detect a NULL pointer and when simply let the software crash.


Comments