Newbie needs to see a large project

Alan Kennedy alanmk at hotmail.com
Tue Oct 7 14:13:38 EDT 2003


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?

Also, with accounting regulations changing, for example, you need a
system that is flexible and easy to adapt to those new regs. Even
months or years later when you return to code that you haven't seen
for a while, and have to get your head around what it is doing, and be
able to make changes quickly (i.e. at low cost). Python, IMHO, is the
best possible language for this kind of readability and
maintainability.

Also, your management team have to understand that CPU cycles are
vastly cheaper than programmer cycles. Why spend ten times the
programming effort just to ensure that the system will run on a 1GHz
PC? Just spend the money on a 3GHz PC instead, and save thousands of
currency.units in programmer costs.

And that's not counting the cost of defects introduced into a system
because it's written in a language that requires 5 times more lines
than an equivalent python program. The number of lines of code is
directly proportional to the number of defects in the code. Each
defect comes at a cost, which too many companies fail to recognise and
fail to factor into their development costs. (Instead they scratch
their heads and wonder why their development projects keep going
over-time and over-budget: then they start spending lots of money on
management consultants :-).

And as for the projected number of users (50), I'm hard pressed to
think of many business data-processing applications where a single CPU
running a python app would not be up to the task. And I'd be very
surprised if the performance, in a well designed python system, would
not match or exceed that of a FoxPro system. In a RDBMS-centric
system, the bottleneck is far more likely to the RDBMS server anyway.
A day or two spent optimising a relational database (e.g.
normalisation, indexing, precompiling stored procs, etc) can often
achieve far greater performance improvements than spending that same
time optimising other code.

I highly recommend a read of "The Software Project Survival Guide", by
Steve McConnell.

http://www.construx.com/survivalguide/

And it's probably worth buying some copies for your management team as
well.

And if your management team needs some reassurance from someone with
experience of python, I'm sure there are python consultants in your
area who would be willing to provide decision support services.

HTH,

-- 
alan kennedy
-----------------------------------------------------
check http headers here: http://xhaus.com/headers
email alan:              http://xhaus.com/mailto/alan




More information about the Python-list mailing list