Automatic Null Checks
I have written far too many null checks in my life. Why do we have even null values? They only seem to provoke a NullReferenceException in our code after all. F# for example has the option type with the value None which is semantically the same as null without being null which makes it impossible to access invalid values by accident. It is of course possible to create null values in F# but it is not the most natural thing in a functional programming language.
Alois Kraus complains about null checks and has some code ideas to get around it. Using an extension method with a lambda doesn't feel like a good solution though.
Ultimately, he wants a language change to have a reference type be suffixed by ? to mean "if not null then run this method or property." That might could work.
Another idea I saw in a language...I forget in which but I believe it was related to me reading up on Google's Go language. Anyways, the idea is that nothing can be null unless you explicitly mark it as nullable. Which means, Nullable Types work make since for reference types and a reference typed variable could never be set to null.
This would definitely be more explicit (ding) and it would confirm to the Clean Code idea of never setting anything to null.