Python evangelists unite!

Peter Hansen peter at engcorp.com
Mon Dec 3 23:34:50 EST 2001


Peter Milliken wrote:
> 
> Peter Hansen wrote:
> > Or did you have some other point I missed?
>
> Yeah, I guess you missed the point. But then you're very busy making money
> aren't you? :-)  So perhaps we shouldn't be too critical :-)

Sounds like reasonable advice...

> The major point was that Python is good for some simple, single person
> jobs - which you and your mate obviously do, but it is *not* good for larger
> projects that involve more than one individual (IMO :-)) - this statement
> has implications on the size of the job in a very direct way.

1. For the record, I've never met Dave (presumably the "your mate" in your
   statement above) and we do not work together.  We just seem to have similar
   views on some of these issues.  (I realize my comments might have been
   misleading in this regard.)

2. Here's a simple point for you to consider in relation to your claims.
   I'm the directory of software engineering for a wireless telecom
   company with 100+ people.  There are fourteen developers here who are
   using Python (almost exclusively) for some rather large applications,
   ranging from factory automation through Intranet to embedded Linux
   stuff for industrial control.  In case this isn't obvious: these
   are NOT one-person jobs.  Several have involved eight or nine
   people simultaneously at their peaks.  I'm happy to report from 
   *actual experience* that your statement has *no* implications on the
   size of the jobs we have undertaken, direct or otherwise.  And
   as for suitability in other ways: we have had an order of magnitude
   fewer reported bugs, and have productivity at least two, probably
   three times, higher than on any project I've worked on in the past.
   These numbers are largely attributable to Python, and that makes
   using it good business sense no matter how you look at it.

> As for Python meeting *all* of the software engineering principles you ever
> *learned* - well, only you can be the judge of what you did or didn't learn
> :-). It certainly fails in a number of important areas that I *learned*
> about software engineering :-). 

While I cannot speak for the grounding your school may have provided,
the University of Waterloo gave me its usual solid grounding in engineering 
principles.  Perhaps your school emphasized some areas I would consider
unimportant.  Or perhaps the advice that a "poor workman should not
blame his tools" should apply even to those calling themselves software
engineers.  (If I were you, I would probably have put a smiley here.)

> All you have to do is look at the Pep requests and tools such as PyChecker
> to realise the deficiencies of the language. 

Actually, I am quite happy ignoring the PEPs, and so far have not
found it necessary to integrate PyChecker into our development environment.
We have done quite well without it so far (although I figure PyChecker
would be of some small help and we'll probably use it eventually).
Perhaps our testing processes (part of good software engineering)
are adequate for the purpose.

So your suggestion doesn't seem likely to reveal any significant
deficiencies to me: if I haven't seen any myself, it must be because
*for my purposes* there are none!

> You could stick with Python as it matures ...

How much more than 10 years old does a language have to be for you
to call it mature?  (No, that's merely a rhetorical question.)

> ... and as long as you're a one man band that doesn't have to provide
> long term support for something that you wrote (I mean *long* term - a 10 -
> 15yr life for many products isn't uncommon - how long will your last job
> survive in production?). Obviously you haven't worked at the architectural
> level of any *large* projects (10's or even 100's of programmers) otherwise
> you would never make the statements you do. Ignorance is bliss I guess :-)

Erm, yes.... well.  Our product design is intended to scale to 
hundreds of systems and have a lifetime of roughly ten years.
I see no evidence after working on this project for two and 
a half years that we will not fulfill our objectives.  In spite of
my background in Systems Design Engineering and my professional
engineering license, I suppose you may be right that I don't have 
what it takes to work on large projects.  Luckily for me, your 
opinion on that matter is unlikely to raise any doubts in my mind,
although I suppose you're quite welcome to express it.

> In the meantime, Python seems to suit you, so enjoy! :-)

I do!  Thanks for the good wishes. :)

-- 
----------------------
Peter Hansen, P.Eng.
peter at engcorp.com



More information about the Python-list mailing list