Books, sessions [was: Re: UI independance]

Linas Vepstas linas at
Sun Apr 13 00:39:56 CDT 2003

On Sat, Apr 12, 2003 at 11:40:01PM -0400, Derek Atkins was heard to remark:
> linas at (Linas Vepstas) writes:
> > I don't know that a 'period' object holding this info needs to be a
> > first-class object; it might merely be a bunch of values tucked away 
> > in a KVP tree somewhere.  I prefer to reserve the first-class C objects
> > for things that have a lot of links and pointer chasing to them;
> > if its just some info it should go into a KVP tree.
> Have you looked at the FreqSpec object?

Good point.

I guess I slept through a lot of the changes in the last few years.
I'm wondering if there's any point to having a conversation about
whether freqspec should have been merely a bunch of stuff tucked away 
in a kvp tree somewhere.  I'm gonna say (without really thinking about
it) 'it should have been'.   That would have tremendously simplified 
the problem of needing to extend file format and sql backend, etc.

KVP's were invented not just to store some occasional attribute, but
really to provide a mechanism for holding honest-to-goodness objects.

The only limitations is that kvp is *not* high-performance:  so 
thier use is limited to things which are infrequently used,
or are localized, that don't cast a wide net.   

I don't know, off-hand, whether some of your business objects might be
better impelmented in KVP. I haven't thought one whit about this,
I'm hoping you have. 

I guess we could debate the pro's and and con's of C-vs-kvp; I've already
started writing an agonizing essay where I try to reconcile these
tensions for myself.  I'm pissed off that I have to (and this is not 
gnucash, but programming in general, e.g. gtt/gnotime, or weblications,
etc.) I'm pissed off that I have to create C structs, *and* I have to
create SQL schema, *and* I have to create the glue code between these
and glade files, and I have to create glue between that and scheme,
and so-on.   And (to get nebulous) that and evo/ldap addressbooks.
and (more nebulous) that and ofx files.  And so on.   It seems that
so much effort is wasted on piddling shit that should be automatic. 
And worse, the piddling shit is hard-coded, inflexible, hard-to-extend,
etc.  Rant, rant ... 


pub  1024D/01045933 2001-02-01 Linas Vepstas (Labas!) <linas at>
PGP Key fingerprint = 8305 2521 6000 0B5E 8984  3F54 64A9 9A82 0104 5933

More information about the gnucash-devel mailing list