Application Development in Python

Dave Reed drlinux at
Wed Jul 9 16:17:49 CEST 2003

On Wednesday 09 July 2003 04:22, indru wrote:
> Hi all,
> I am new to Python programming. I am from C,C++,Perl background. I am
> quite convinced by the possibilities python as a very high level
> language is offering. I am seriously thinking of using python in my
> project which is to create a accounting software. First thing came to 
> mind was C++ but the time required could be enormous and my people are
> not ready to wait that long. The project is a medium sized one but
> bigger than something like gnucash and KMyMoney2. Do any body have
> experience with application development using python and their
> experiences ?.   Also please advice me whether Python can be used for
> such purposes.
> Thanks in advance
> Indru

Of course!

I wrote a 24,000 Python program that uses pygtk/gnome (interfaces were
created with glade) and postgresql. It's a patient database/accounting
package for my wife's optometric office. It does double entry
accounting to handle all the monetary transactions and generate
reports for their accountant. It also keeps track of their frame
inventory, does insurance reimbursement calculations for the
insurances they accept, and many, many, other things.  About 1,000 of
that 24,000 lines of code is strings that hold PostScript code for
printing out receipts, etc.

It took me about 300 hours including design time. I've got 22 years of
programming experience (the last 3.5 years almost exclusively in
Python) so YMMV on coding time. I use gnucash for my personal finances
and IMO, the system I wrote is more complex than a basic accounting
system such as gnucash (which I use for my personal finances),
although using Postgresql to store all the data greatly reduces the
amount of code you have to write to manipulate the data. So my guess
is fairly full featured accounting system could be written in less
than 24,000 lines of Python code if you use a database to store all
the actual data. 

Also note that using the database for manipulating the data makes the
speed very acceptable. I'm almost certain that manipulating the data
in Python would be way too slow to make it usable (e.g., generating a
balance sheet that looks through all the transactions and groups them
by account in Python would be much slower than using sql commands to
do that).

Have fun!


More information about the Python-list mailing list