Newbie needs to see a large project

John J. Lee jjl at pobox.com
Wed Oct 8 12:04:24 EDT 2003


Alan Kennedy <alanmk at hotmail.com> writes:

> John Fabiani wrote:
> >> I have been checking Python recently and have presented what
> >> little I know to mangement.  They have asked if there is any
> >> large business apps (like an accounting system) using python and
> >> what the performance is like.  We would be running on Linux with
> >> a large database (maybe postgres or mysql) of 3-5 Gbytes.  We
> >> would be moving from a windows platform(foxpro apps) to Linux
> >> (python).  About 50 users total.  Thanks in advance....
> 
> My feeling is that if your management team are asking about
> performance, they've got their focus wrong. When I'm involved with
> product development (which is usually on the quality assurance and
> testing side these days), my primary focus is correctness of
> operation, not speed. What use is a fast accounting system if it comes
> up with the wrong numbers?
[...]

Well, since this is not a mass-market application, I'd guess they're
not thinking about hardware costs (at least, not if they've any sense
-- always a dangerous assumption), but rather about the risk of
getting 'so far and no further', because the application takes longer
than it needs to, even on the fastest hardware.  Or, slightly more
realistically, the risk that you'll end up having to port to another
language.

Of course, we all know that this is rarely a problem, because there
are very few applications where rewriting more than a tiny fraction of
the code is necessary.  The time savings of using Python simply
outweigh (by a big margin) the costs of having to rewrite a few bits.

Unfortunately, people (especially management) have caught the meme
that says "using multiple languages is bad".  This has a very sensible
core, of course: a tower of babel of languages is very bad for code
maintenance.  But it's an absurd misapplication of that idea to
compare, say, Python and C with Java and conclude that Java is better
because it's one language instead of two!

Hmm, I'm getting bored of writing these same things over and over.
Why don't business users understand these arguments, or believe
people's experiences?  Risk-aversion doesn't really explain it, for
me: *all kinds* of software projects fail, including those that make
use of the most popular software and standards. The fact that
something is an extremely popular rather than just a popular way of
doing something is not a great way of estimating risk.  The only
argument that makes much sense to me for not using Python in these
kinds of applications is (as discussed in a recent thread) that
something like Java has big commercial backing, unlike Python, so
library support is better.  Jython solves that (if you believe it's a
general problem, which I don't -- it's a problem in particular cases),
but perhaps it does so at the cost of sacrificing the relatively
cheap, big speed improvements you can get from small C extensions?  I
wonder if it would be possible to implement the Python C API with JNI
and the Jython API??


John




More information about the Python-list mailing list