[Twisted-Python] win32 reactors

James Mansion james at mansionfamily.plus.com
Sun Apr 6 14:53:00 MDT 2008


Phil Christensen wrote:
> Wasteful coding? Who do you think you're talking to here?
I am suggesting that the '90% coding' suggests to me that design 
discussion starts when
most of a concrete implementation is available.  It wasn't your term but 
you have taken
offence at what I said.

Well, I disagree. I find it strange that there should be such a 
rejection of the idea
that one can achieve some degree of concensus on a design approach before
coding starts. It seems to me very wasteful if someone should expend time
getting an implementation 'mostly there' if in fact there is a devil in 
the detail that
will come up and bite it and invalidate the whole thing - and the only 
way to
do that is to be prepared to discuss abstract design approaches *before* 
coding.

Even if there is no resource available to code it, it can leave a documented
concencus that can be used to bootstrap implementation when resource
becomes available.

There are some aspects of system design relating to distributed and 
asynchronous
systems that are *not* amenable to iterative refinement and refactoring 
- you
can't generally test and refactor your way out of a design that is 
fundamentally
deadlock prone, for example.

It may be that the way that people like to 'collaborate' in open source 
does not
generally extend to design review, but that's wasteful and ultimately 
foolish for
exactly the same reasons it is in everyday work, and it suggests a 
particularly
limited view of what 'collaboration' and 'teamwork' means in the context
of software development. You can't force wouldbe contributors to do
differently, and ultimately you may get results that work, but its very 
inefficient
and there have been some high-profile attempted contributions to (say) 
the Linux
kernel that have been bounced after huge amounts of work, when it would have
been apparent that the design approach would never be accepted if it had 
been
reviewed up front. In some respects the BSD projects' approaches (or at 
least
aspirations) make them more attractive.  Sometimes, anyway.

It would just be nice to find a project where design is welcomed rather than
some macho 'code is king' bullshit. Would you be happy to work on a team
at work that spends so little time on design? Why should working on a
distributed volunteer team be materially different?

The question really is whether you want to encourage collaboration of
design and design review, or not?





More information about the Twisted-Python mailing list