[BangPypers] "The Python I would like to see" - Armin Ronacher

Saager Mhatre saager.mhatre at gmail.com
Tue Aug 19 10:35:57 CEST 2014


On Tue, Aug 19, 2014 at 12:45 PM, Noufal Ibrahim <noufal at nibrahim.net.in>
wrote:
>
> On 2014-08-19 12:31, Saager Mhatre wrote:
>
>> 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 suppose so. My epiphany was that tests, at the end of the day, are
code. They need to be maintained, refactored, cleaned up, optimised,
cajoled and worshipped just like one does with the actual application. The
less code I write, the better.
>
> So, yes, it's a tradeoff. Once upon a time, a more naive version of
myself loved the freedom that I got from this kind of thing. The cynical
version of myself that's typing this email is not so sure anymore. He, at
some level, feels that the extra headache of specifying interfaces is a
better investment than using a dynamic language and writing tests to
validate all the possible inputs.
>

Hear, hear! All he younglings pay heed, the master hath spoken.

Again, glad this was said without beating about the bush; and glad *you*
said it! ;)

>
>> I'm glad somebody finally said this; and doubly so that it was Noufal! ;)
>
>
> I'm surprised that you've never heard this from me before. It's something
that I decided on a LONG time ago.
>

I realized this myself a long time ago, around the time I joined TW and
started putting Ruby in production. However, all the dynlang love in the
air at the time seemed to be blinding people to it. Since then I've sensed
this sentiment among those that have grown wiser with age and experience.
But you're the first one I've heard call it out without mincing words.

- d
On 2014-08-19 12:31, Saager Mhatre wrote:

 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 suppose so. My epiphany was that tests, at the end of the day, are code.
They need to be maintained, refactored, cleaned up, optimised, cajoled and
worshipped just like one does with the actual application. The less code I
write, the better.

So, yes, it's a tradeoff. Once upon a time, a more naive version of myself
loved the freedom that I got from this kind of thing. The cynical version
of myself that's typing this email is not so sure anymore. He, at some
level, feels that the extra headache of specifying interfaces is a better
investment than using a dynamic language and writing tests to validate all
the possible inputs.

 I'm glad somebody finally said this; and doubly so that it was Noufal! ;)
>

I'm surprised that you've never heard this from me before. It's something
that I decided on a LONG time ago.

_______________________________________________
BangPypers mailing list
BangPypers at python.org
https://mail.python.org/mailman/listinfo/bangpypers


More information about the BangPypers mailing list