Just noticed this hit Slashdot, and thought I might repost the abstract here.
http://qconlondon.com/london-2009/presentation/Null+References:+The+Billion+Dollar+Mistake > I call it my billion-dollar mistake. It was the invention of the null > reference in 1965. [...] This has led to innumerable errors, > vulnerabilities, and system crashes, which have probably caused a > billion dollars of pain and damage in the last forty years. [...] More > recent programming languages like Spec# have introduced declarations > for non-null references. This is the solution, which I rejected in > 1965. -- Sir Charles Hoare, Inventor of QuickSort, Turing Award Winner Serendipitous, since I just spent today trying to track down an (expletives deleted) obscure null dereference problem. I figure I must be in good company if even the guy who invented null doesn't like it... It also make me look up this old thing; it's several years old now, but I still think it's got some good points in it. http://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/docs/sweeny.pdf > * Accessing arrays out-of-bounds > * Dereferencing null pointers > * Integer overflow > * Accessing uninitialized variables > > 50% of the bugs in Unreal can be traced to these problems! Tim Sweeny isn't an amateur; he's responsible, at least in part, for one of the most commercially successful game engines ever. I figure if even he has trouble with these things, it's worth trying to fix them. Note that D already solves #1 and #4, LDC could give us #3... that just leaves #2. :D -- Daniel