--On September 9, 2014 at 3:12:33 PM -0400 Aaron Laws <dartm...@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.

           Mike

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to