Good afternoon,

On Mon, Nov 2, 2020 at 11:56 AM John Ralls <jra...@ceridwen.us> wrote:
>
>
>
> > On Nov 2, 2020, at 9:22 AM, Glenn Serre <gase...@spiresoftware.com> wrote:
> >
> > Good morning,
> >
> > My name is Glenn Serre, and I have recently retired from paid software
> > development work, which I had been doing since near the end of the
> > last millennium.
> >
> > I have been using gnucash on Linux for many years and would like to
> > contribute.  I intend to start by doing some conversion to C++ as that
> > will help me learn the system, fits well with my experience, and will
> > incent me to update my C++ skills (yet again).  I have read the C++
> > wiki page and intend to start with the xml backend.
> >
> > Initial questions:
> > Is there a better place to start than the xml backend?
> > Are we still limiting things to what is supported in C++ 11 and Boost?
> > Any gotchas, etc. that are not documented in the wiki?
>
>
> Welcome!
>
> I think you'll learn the Gnucash innards more quickly by taking on some 
> engine bugs and rewriting some engine code to C++; that's where the business 
> logic lives and it's the key to understanding the spaghetti pot; 
> understanding the engine is a necessary prerequisite for understanding the 
> backends. I personally find writing tests to be an excellent way of 
> understanding how code works and there's plenty of code that isn't well 
> tested.
>
> Regarding the XML backend, the medium-term plan is to convert the XML backend 
> from creating engine objects directly to creating an in-memory SQLite3 
> database so that we can replace QOFQuery with SQL queries and towards loading 
> engine objects as needed instead of all of them at startup. That plan argues 
> against putting much effort into a straight functional rewrite.
>

OK.  I will look at libgnucash/engine C files and engine bugs.

> As for C++, we're up to C++17 now for new work. We do still want to limit 
> external dependencies to Boost (although we've decided on Googletest instead 
> of Boost::testing for the unit test framework). That doesn't mean that 
> something else is off limits if there's a really compelling case for it, but 
> you would need to make that case.
>

OK.  I would not expect to be arguing for additional dependencies
(fewer is better) and certainly not in the near term.

> Undocumented gotchas? You bet, including plenty of what Rumsfield famously 
> named "unknown unknowns". Gnucash spaghetti has been cooking for 23 years 
> now, it's thoroughly tangled!
>
> BTW, consider connecting on the IRC channel as a more conversational and 
> (depending on your timezone) immediate channel for discussing code. 
> https://wiki.gnucash.org/wiki/IRC

Done, but I expect to be just lurking for a while.

Thanks!
-- Glenn S.

>
> Regards,
> John Ralls
>
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to