Design Decisions

Linas Vepstas linas at linas.org
Thu Aug 28 21:58:17 CDT 2003


On Thu, Aug 28, 2003 at 12:45:21PM -0400, Derek Atkins was heard to remark:
> linas at linas.org (Linas Vepstas) writes:
> 
> > Correction: above should say 'second, third and fourth'.  
> > The *first* implementation was in C and I wrote it.  The person
> > who wrote the *second* implementation, in scheme, didn't understand
> > the issues involved, and yet had a sufficiently inflated ego to not
> > care, and not bother to ask about the issues, and not deal with them,
> > until forced to, under duress.
> 
> Interesting -- I do not remember the first (in C) implementation
> of the QIF importer.  When was it done, and when was it ripped out?

1998, in version 1.0/1.2, ripped out before version 1.4 showed up.

> > There are many lessons to be learned here.  At least one is that 
> > re-writing from scratch is often more difficult than assumed, and 
> > takes much longer than anticipated.  Just look at Mozilla vs.
> > Netscape!   It pays to migrate old code, rather than redesigning it.  
> > At first, it seems a much more slow way to proceed, a much more 
> > painful way.  But it only seems slower at the start.  Towards the 
> > end, the 'old code' is ready to deploy, because its actually 
> > bug-free (because it always worked, had never gotten broken along the
> > way), even as the 'new rewrite' remains buggy and unfinished.
> 
> This is true..  The (fourth) implementation that I've been working on
> has been much more challenging than I initially anticipated, and it is
> not yet complete (let alone completely tested).  I did test that it
> compiles, and that it will read in some (basic) QIF files, but I have
> not finished internal-merging, QIF-to-GNC conversions, or the UI
> integration....
> 
> It's been significantly more work than I imagined when I started. :(

You sure you don't want the finish the earlier 'almost works' 
implementation?

--linas

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


More information about the gnucash-devel mailing list