Daniel Keep wrote:
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...

There are issues shoe-horning non-nullables into a nullable world:
 - preallocating arrays (or static arrays)
 - structs with non-nullable fields
 - pointers to non-nullables

It's sufficient that I gave up on my attempts to implement it.

If it were implemented, non-nullable absolutely must be the default. I'm still sad about mutable being the default in d2.

Reply via email to