The QCon developer's conference this year has an interesting track - historically bad programming ideas. However, I have to say that I'm actually a big fan of the null pointer, despite the issues that it gives some people. The fact is, without null, nil, undefined, or 0 (depending on language), the actual task of programming would be much more difficulty. And, I would argue, would cost more than the bug-savings that we would get from having non-null type systems. In order to get around them you would have to write code that is more confusing and more time-consuming, and you might even wind up with the same set of bugs, just moved around slightly.