On 5/19/13 8:55 AM, deadalnix wrote:
On Sunday, 19 May 2013 at 12:06:01 UTC, Simen Kjaeraas wrote:
My experience is the complete opposite - I think maybe 20% of bugs at
my job
are caused by null references. But as you say, they are very easily
fixed.


Sometime they are super freaking hard. I have a horror story debugging
Apache Cayenne : http://cayenne.apache.org/ because it was throwing NPE
on a race condition that would never show up once the code is instrumented.

A reference was null for a short moment and then set to something. Due
to concurrency, in extreme cases it could be seen as null where it was
assumed everywhere to be set.

Sounds like a race problem unrelated to null. With non-null objects the race would have manifested itself in a different way, perhaps even more pernicious.

Anyhow, this discussion should have finality. We could go on forever arguing the usefulness or lack thereof of non-nullable references. They didn't catch up in some languages and did in some. My personal opinion is "nice to have, but not greatly compelling".

It's reasonable to assume no major language changes will accommodate non-null references, so the next best thing would be to focus on a library solution. As Walter said, a library solution has the perk of allowing other interesting restricted types.


Andrei

Reply via email to