Future of Gnucash (Javascript?)

John Ralls jralls at ceridwen.us
Wed Dec 29 11:51:13 EST 2010


On Dec 29, 2010, at 6:11 AM, Derek Atkins wrote:

> Herbert Thoma <herbert.thoma at iis.fraunhofer.de> writes:
> 
>> Hmm, I just would like to point out that GnuCash was kind of a script once:
>> It was a guile script that called the C/gtk/gnome code (OK, the GUI code
>> was not directly scripted). It took us a long time to rework this back to
>> a C application that called guile for the reports ...
>> 
>> I am not that sure that an interpreted language is a good idea. But I am
>> an electrical engineer not a computer scientist. So I tend to prefer
>> languages that are closer to the hardware ...
> 
> Just to play devil's advocate, the guile/scheme modularization project
> back in the 1.4-1.6 days never finished.  It was *supposed* to allow you
> to easily write guile scripts against various pieces of gnucash just by
> pulling in the necessary gnc modules.  Unfortunately that never
> completed, so it still wound up being a single monolithic application...
> And a slow one at that!  Moreover it was nearly impossible to debug.  So
> reverting back to a regular C application was definitely the right move
> then.
> 
> As for rewriting GnuCash now; I think it can be done piecemeal, but that
> means you need to write wrappers in order to have drop-in replacements.
> There's a TON of code; GnuCash is a HUGE application.
> 
> I'm not advocating staying where we are, nor am I advocating moving to
> something new.  I'm just trying to advocate that we make a choice with a
> clear understanding of the ramifications of our choice.
> 
> W.r.t. Gnome3 v. Gnome2 -- I think historically we've tried to keep
> GnuCash compatible with the lowest-common-denominator stable release
> from 6-12 months prior to release.  I think it's absolutely reasonable
> to say that your OS must be no older than ~1 year old in order to build
> GnuCash.  I DO NOT think it's reasonable to require a user to be running
> yesterday's release of Debian/Unstable in order to build GnuCash.  (And
> yes, this *was* the case for the original GnuCash 1.6 release -- pretty
> much NOBODY could build it because the dependencies were all bleeding
> edge).  Considering gnome3 hasn't been released yet, I think it should
> be considered out-of-scope for GnuCash 2.6.
> 
> I'd honestly like to see us make more frequent releases.  I'd love to
> see a release a year.  But historically we haven't had the development
> resources to do that.  Either that or we picked projects that just too
> too long.  Even the gnome1 -> gnome2 port took 18 calendar months (maybe
> more -- I'd have to look).

Python would need wrappers. C++ (or GObject-using C) can be mixed in to the existing code at will. Do you have any language preferences or objections? 

For Gnome3, how about a configure option with the Gnome3 stuff in its own subdirectories? That would allow us to start work on it while we also work on having better MVC separation and isolating non-GUI dependencies with interfaces so that they can be updated or replaced more easily. We could have other framework options as well if someone comes along who wants to write one. That, by the way, is an argument against continuing to use Glib and GObject outside of the GUI.

Regards,
John Ralls




More information about the gnucash-devel mailing list