Do you feel that a language has to have something at the language level to prevent NPEs?
In my experience, Scala does pretty well without it.
I guess is your point that the language should make it impossible to write bad code, not just make it easy to write good code?