Would that we could all just up and switch programming languages at the drop of a hat like that.
Explicitly defining what is ever allowed to be 'null' is a great habit that serves me extremely well during evenings and weekends. But it's completely useless to me, by virtue of being impossible, between 9am and 5pm.
Value types are non-nullable. But they're also stack-allocated* and passed by value, so they're really only appropriate in certain cases. You can't use them as general-purpose non-nullable objects.
*In practice, though technically that bit's an implementation detail of Microsoft's run-time and not part of the language spec.
Isn't it just an specific formulation of Murphy's Law? If something can go wrong it will. And that is not just the golden rule of programming, it's the golden rule of Life!
19 comments
[ 3.7 ms ] story [ 66.0 ms ] threadCached version: http://webcache.googleusercontent.com/search?q=cache:vyvuBLO...
And here comes a repetition of Maybe Foo in haskell, and Option in Scala/Java. Hehe :-)
So explicitly define what is allowed to ever be "null": http://lukeplant.me.uk/blog/posts/null-pointers-vs-none-vs-m...
Explicitly defining what is ever allowed to be 'null' is a great habit that serves me extremely well during evenings and weekends. But it's completely useless to me, by virtue of being impossible, between 9am and 5pm.
Keep meaning to try C# for a project sometime. I understand it to be a more expressive, programmer friendly Java.
*In practice, though technically that bit's an implementation detail of Microsoft's run-time and not part of the language spec.