Linux Weekly News
Linux Stocks Page
A look at GnuCash 1.2.5Here is an unpleasant confession for an LWN author to make: I actually still use Windows. I boot it to run exactly one program - an old, proprietary personal finance application. It's the only thing I have ever found useful on Windows. Occasionally I look around for a free replacement so that I can recover that one last, small partition on my disk. This article is the result of my latest attempt - driven, additionally, by the sinking feeling that my current application probably won't handle the next century very well...
GnuCash has been one of the more promising developments in the personal finance arena for some time (another is MoneyDance, which is a shareware program). For a very long time, actually; it is honestly surprising that an application area that could be so useful to so many has taken so long. Anyway, GnuCash came about as the result of a merger between two earlier projects: Xacc and GnoMoney. The combined effort has progressed more quickly than would have otherwise happened.
The latest release is 1.2.5, which came out on November 24. It is intended to be a "stable" version - one that you might actually trust your finances to.
Anybody who has ever tried to actually build GnuCash knows that it is a major pain - I have seen very few packages with so many different dependencies and version requirements. So I was pleased to find RPM-packaged binaries available. I still had to track down some dependencies, but life was easier.
There are versions of GnuCash for Motif and GNOME; there is also, from looking at the source, somebody working on a Qt version. However, only the Motif version is said to work at all well; that is the version you get if you take the binaries. Happily, they toss in a version of LessTif that works as well...
To test things out, I went ahead and exported my finances out of my current application. Then came the first test: can I import them into GnuCash? The answer is a qualified "yes" - GnuCash can import and make sense out of QIF files, but the result still may not be quite what you want.
You see, GnuCash uses a full double-ledger scheme for tracking money. There are advantages to doing things this way, but it is also a bit more complicated, and most personal finance programs do not do it - at least, by default. The result is that, when a great many items are imported from another application, a lot of them end up in the wrong places. If you want to bring in years worth of history, expect to spend a lot of fixup time.
GnuCash initially comes up with a window like you see here - if you specify a file for it to work with. There is no default file. The screenshot here (and all the others) comes from the GnuCash web site - they show the features nicely, and have the advantage of not broadcasting the sorry state of my finances to the net as a whole... (Click in the images to get a larger version).
The main window is essentially a list of accounts. Those who are unused to double-ledger accounting may be thrown off by the fact that all of their "categories" show up as accounts. Things that are categories in personal finance programs (i.e. "utility bills," "wages," or "caffeinated penguin mints and other stimulants") show up as income or expense accounts here. It's not hard to get used to, and there is an option to hide these accounts from the main display.
Selecting an account brings up the register window, as shown here. It looks, by design, much like a checkbook register. The basic things you can do here are fairly obvious - it's just a form providing a view to the data.
Entry of new items in the register is done by typing them in the last line. This aspect of the interface is not entirely obvious - it just looks like a weird, incomplete entry. A separate entry area would be nice to have.
The real gripe I have with item entry, though, is that there is no way to do it just with the keyboard. When you're typing in large numbers of entries from your checkbook, you really want to just blast through them. Moving to the mouse and back is unnecessary and obnoxious.
There is, of course, a reconcile window for checking your notion of your account's status with that of your bank (otherwise known as "why do they think I have $100 less than I do?"). It works pretty much as expected.
GnuCash allows for stock accounts, so that investments can be tracked. There is a separate program which can go out and update all the prices from a number of net-based services. Creating a standalone program may seem strange, but the idea is that it can run every day out of cron and create a price history for you. The idea is nice; unfortunately the program assumes you have a number of extra Perl modules around, and I couldn't make it work.
There doesn't appear to be any provision for stock splits, dividend reinvestments, and other such activities at this time.
"Reports" is an option, though it only has a few possibilities currently. Any that I tried (i.e. "portfolio valuation") gave me a separate window with a bunch of Perl code in it. Personally, I have this bias that the computer should deal with Perl and just show me the results, so I found this mode of output a little unsatisfactory. According to the GnuCash web page, I should really have seen a window like that on the right.
Users of modern personal finance software will find a number of features missing. No way of scheduling bills. No check printing. No printing, actually, though that is supposed to work Real Soon Now. No pie charts. No "retirement planning wizards." Such things will come eventually, one assumes, but the GnuCash folks are still working on basic functionality.
What about stability? Programs that crash are always a pain. Those that crash and lose an hour of tedious data entry work are intolerable. Those that insert errors into your checkbook call up the old "who do you sue?" question. I was not able to get GnuCash to crash or obviously corrupt my information, despite a fair amount of trying. It is a bit messy, leaving large files with names like checkbook.19991214204524.log sitting around. But stability as a whole does not seem to be a problem.
So...would I trust my finances to this program? Unfortunately, I have to conclude that it is still not quite there. It is, however, at a point where early adopters who would like to dig into the source should be messing with it. With a bit of development help, it could get to a useful point in short order. If you've been casting around for a free software project to help, consider GnuCash. Much of the hard work has been done, and it should be possible to achieve gratifying (and widely used) results with a relatively small amount of work. GnuCash is getting close to ready for prime time.
Update: we received a note from a member of the GnuCash development team responding to some of the points made in this review. Have a look; evidently a much improved version of GnuCash will be available soon. LWN will likely do an updated review once it becomes available.
Eklektix, Inc. all rights
Linux ® is a registered trademark of Linus Torvalds