On Saturday, 15 September 2012 at 17:12:23 UTC, Jonathan M Davis
wrote:
On Saturday, September 15, 2012 15:24:27 Henning Pohl wrote:
On Saturday, 15 September 2012 at 12:49:23 UTC, Russel Winder
wrote:
> On Sat, 2012-09-15 at 14:44 +0200, Alex Rønne Petersen
> wrote:
> […]
>
>> Anyway, it's too late to change it now.
>
> I disagree. There are always opportunities to make changes to
> things,
> you just have manage things carefully.
I don't know if people really use the ability of references
being
null. If so, large amounts of code will be broken.
Of course people use it. Having nullable types is _highly_
useful. It would
suck if references were non-nullable. That would be _horrible_
IMHO. Having a
means to have non-nullable references for cases where that
makes sense isn't
necessarily a bad thing, but null is a very useful construct,
and I'd _hate_
to see normal class references be non-nullable.
- Jonathan M Davis
Agreed. Nullable types are a feature not a bug. There is no need
to change it. Bugs occur when you do not know the language rules
and make assumptions instead. This can happen whith any language
and any rules. As to an example use of nullable references:
consider a board game (for example chess). The boards has cells
which can be empty or occupied. Model this with an array of class
objects representing pieces. null reference means a cell is not
occupied. If you want to remove a piece from the board assign
null to it and GC will take care of the rest. Now, doing this
with full objects representing empty cells would require needless
work to define such "null" objects and would be wasteful of
memory (typically boards are sparsely populated). Now imagine a
really big board and every cell holding references to useless
objects simulating null references. It would not make sense.
Saying that null references are evil is just propaganda. Let's
keep D a sane language.