Sigh. Possibly the most disputable 'talent' I have is the ability to see, understand (fast) the different viewpoints in a discussion, and even appreciate most of the conflicting arguments. Combined with my eagerness to make sure all people in this world would just get along it often makes me play different opposite roles just to make sure that all arguments get their place and all concerned at least make the effort of taking a picture from the other viewpoint...
That might sound as political correct and 'nice' however it often leads to the discussion being left by anyone and I end up arguing with myself playing all the different roles :-)
At the end, this only shows the uselessness of arguing about arbitrary things. (Just as in OSS:) The one that does it gets to decide how it is done.[period] However I'm the kind of man that enjoys discussions for the sake of the bare neuron networking...
So when Steven likes this, I only saw somebody say: "I replaced the robustness checks from my compiler with the functional checks of my own unit tests?" Where is the difference or the advantage? Lets call it 'duce' since Belgium seems to be a tennis-country nowadays :-)
Me too had to think about the presentation by Michael Kay this week. (Yep, the complete company was present :-)) He must be as grey-thinker as I am since his point on the very topic about strong-loose typing was that it all depends on how you look at 'robustness'.
- Is it never failing and continuing in a best effort to 'assume' the most likely and thus possibly yielding the wrong result?
- Or is it demanding explicit wording on everything you want to have happened, and fail as soon (design time preference) as a detail is missing or a mismatch is found?
I'ld like to go a step into sociologics: maybe it is about how we relate to these 'computers'.
- Are they the stupid systems you have to tell anyting you want to be done, at best just helping people to communicate to each other
- or are they becoming more and more perceived as smart things with a mind and communication abalities of their own?
Don't expect an answer from me, I know that a 'smart' computer will only be as smart as that piece of mind its developer has put into that system. If that turns out to be a lot smarter then I am, then I have hardly any means to be the differentiating judge. (As Alan told us a long time ago)
At best I can propose some order into this grey chaos:
- the closer up to humans your app is playing a role the more it will have to deal with the implicit typing humans assign to pure values...
- the more it is hidden into the system itself and wants to efficiently exchange info between these explicit typing peers that computers are, the more you will see explicit typing applied, no?