What do you think of C#'s non nullability migration strategy: https://learn.microsoft.com/en-us/dotnet/csharp/nullable-migration-strategies
It seems they introduced some switch allowing to see all reference types as nun nullable and throw an error if that's not the case.
Though because of backward compatibility you need to explicitly allow them.
I personally have mixed feelings about this.
On the one hand it's better than two write ClassType!
all the time in new code reducing terseness compared to ClassType?
.
So instead you only need to append a ?
to the class type when it should also allow for null values.
e.g.:
//with strict non nullability flag enabled
Class c=null //error
Class? c=null //okay
On the other hand it feels like a new language dialect, a new color added to your language where you need to think in nullable (legacy) and nonnullable (new world) contexts.
Still like the solution, though.
Your opinion?