steveh <steve...@useshotmai.l> wrote:

I've known there are hidden tradeoffs when using these 'intelligent' types. Non-null types add terrible runtime checks everywhere. It's simply not acceptable in a systems programming language. Operating system kernel uses very efficient uninitialized arrays for buffers. It's crazy to force this non-null hype down our throats.

And here you are sorely mistaken. The point of non-nullable types is the
exact opposite. In fact, the only time you need a runtime check is when
converting a nullable type to a non-nullable - after that, it's guaranteed
not to be null. When in addition there is no way to create a non-nullable
variable without initializing it (and possibly checking that the
initializing value is not null, if it comes from a nullable source),
the result is a great decrease in runtime checks, not an increase.


--
Simen

Reply via email to