C++ work

Mike Alexander mta at umich.edu
Tue Sep 9 16:54:26 EDT 2014

--On September 9, 2014 at 3:12:33 PM -0400 Aaron Laws 
<dartme18 at gmail.com> wrote:

> Currently, c++ work is starting at the deepest point (the part of the
> code that is relied on by everything), qof, so that a C api has to be
> maintained until everything that relies on QOF has a way of accessing
> the c++ interfaces. This means that c++ and C interfaces need to be
> created and maintained in parallel until everything's ready to
> switch. This has grated on me for quite a while, but I see it as a
> very difficult problem. I don't see a quick way to fix it.

I don't agree that this is such a big problem.  Keeping existing C 
interfaces to code rewritten in C++ isn't that big a deal.  Sure, it 
adds a little bit of work, but not much compared to the work of 
converting the code to a proper class hierarchy in C++.  I went through 
all this in another project of similar size to GnuCash so I have some 
experience with the problems involved.  The approach we took there was 
mostly to rewrite things in C++ if they were going to be rewritten or 
extensively modified anyway.  Sometimes things were rewritten because 
the benefits of using C++ seemed great enough to be worth the effort, 
but we certainly didn't try to avoid C dependencies on C++ code.  When 
I left the company it was about half converted.  That was 8 years ago, 
and I suspect there are still parts that are in C because it isn't 
worth the cost to rewrite them.


More information about the gnucash-devel mailing list