Programming Language (was: State of the GnuCash project: A call forhelp)

Dave Reed drlinux at columbus.rr.com
Wed Aug 13 21:45:08 CDT 2003


On Wednesday 13 August 2003 19:30, Linas Vepstas wrote:
> Hi,
> 
> On Tue, Aug 12, 2003 at 08:26:12AM -0600, Herman was heard to remark:
> > On Tuesday 12 August 2003 7:30 am, Robert Uhl wrote:
> > > Christian Stimming <stimming at tuhh.de> writes:
> > > > *Gnucash was started in 1998*.  That's basically it.  C++ 
compilers
> > > > were not yet mature and standarized enough on the variety of 
platforms
> > > > considered at that time.  Same for Java or Python.  So C was the 
only
> > > > option *at that time*.
> > >
> > > Well, and most free software is in C, and the alternatives have 
rather
> > > stronger negatives and weaker positives, perhaps?
> > 
> > Also bear in mind that the FSF still do not recommend the use of 
C++.  There 
> > are some awfully bright people in that group, so they must have a 
good reason 
> > for that sentiment.
> 
> Well, we think we're pretty smart here too :-)
> 
> I do not know of any language that would have allowed gnucash to have
> the same amount of features and do it with fewer lines of code and/or
> less complexity. 
> 
> For example: a perl regex is one line of code, as opposed to 50 or 100
> in C.  But 100 lines of code is a drop in the bucket, and perl is 
> a lot more verbose for some other tasks.  One can make similar
> statements about any other of the languages I know of.
> 
> I *am* vaguely toying with the idea of inventing an uber-language that 
> would simplify much of what gnucash does (much of it is glue code 
> between GUI, engine objects, and file/database storage).  But that's 
> neither here nor there, its rather a research-projecty kind of thing.
> 
> --linas


This is getting off topic, but have you looked at Python?

I've written a customized patient database/accounting system for an
optometric office. It uses Postgresql as the backend database to store
all the data with pygtk/gnome and glade/libglade providing the 
interface.
Development was very fast - took me about 8 weeks full time to write
it. In addition to the double entry accounting, it does frame
inventory, insurance reimbursement calculations, etc.

In 20 years of programming I've experienced lots of different
languages (APL, Basic, C, C++, Java, Pascal, Perl, PHP, Python, four
assembly languages, and just a little bit of Lisp and Scheme).  I
can't imagine writing it so quickly in any language other than Python
(along with glade/libglade). It appears Ruby might be similar, but I
don't like all the special characters it uses.

If gnucash used Python instead of guile, I'd try to find some time to
help work on it, but I just don't enjoy writing code in Lisp/Scheme
like languages so I've never become proficient in using them.

Note: I am not advocating rewriting gnucash in Python and am not
trying to start a language war, but from my experience, Python is that
excelllent glude language that Linas wants.

Dave






More information about the gnucash-user mailing list