On Tue, Aug 19, 2014 at 11:23 AM, Noufal Ibrahim <nou...@nibrahim.net.in> wrote:
> On 2014-08-19 11:11, Sriram Narayanan wrote: > > Hi Noufal, could you elaborate on this? I have enjoyed the freedom >> of non-static typing that Python and Ruby offer, but also sometimes miss >> the static type checking that C# and Java offer. >> > > Yes. I like the freedom and they're great for prototyping. > > When things get large with a lot of moving parts, you need to write > elaborate tests at every layer to validate the whole thing and even then, > things slip through. That's just a question of testing strategy. If you're writing 'elaborate' tests at every layer, you're probably validating too much or exercising too much of the system at each layer of testing. The cartesian product of tests required to validate every implementation at a level of abstraction is inevitable if you want confidence in all those implementations; but these need to be limited to each pair of collaborator as far as possible so that so single test becomes too elaborate. But that's a different discussion altogether. However, I always got the sense that dynamic languages made this both easier and hard at the same time. Easier in that you didn't have to declare explicit interfaces between layers; harder in that all barking ducks are only identified at runtime! > I've also felt that the freedom encourages a kind of loose thinking that I > have to guard against. > I'm glad somebody finally said this; and doubly so that it was Noufal! ;) - d _______________________________________________ BangPypers mailing list BangPypers@python.org https://mail.python.org/mailman/listinfo/bangpypers