Jonathan M Davis:

Adding something to the language doesn't buy you much more than that anyway.

In the case of not-nullability, this isn't true. Integrating not-null in the type system allows the language to do things you can't do with NotNull, like:


// x is a nullable class reference
if (x == null) {
    ...
} else {
    // here the type system sees x as not null.
}

There are some other similar things you can't do with NotNull. In my enhancement request about not-nullability there are references to articles that explain the situation.


D arguably has too many features as it is.

I don't agree, the number of features is not important. What's important is how clean and intelligently they are designed, how cleanly they interact with the other features. etc.


And as big a deal as you seem to think that this is, the _only_ C-based language that I'm aware of which has non-nullable
references as part of the language is C#.

This is not true. Scala, Rust, some new Java-derived languages, and more modern languages have not nullable references. In practice I think most or all new languages coming out now have this feature. In my opinion in few years programmers will expect to have it in all languages that are not too much old and that support some kind of nullable references.

Bye,
bearophile

Reply via email to