[GNC-dev] Report with Fiscal Year

john jralls at ceridwen.us
Mon Sep 6 10:34:55 EDT 2021

Re C++, you and your professor are at least 10 years out of date. Since the publication of the C++11 standard C++ has become easily the most modern and versatile language available with the possible exception of Rust. Unlike Rust it is an ISO standard language with one of the largest and most active standards committees in the world and is consistently near the top of languages both in projects using it and programmers skilled in it. C on the other hand is 1970s technology and while they do have their own standards committee they're publishing new versions only every 10 years (to C++'s 3 year cycle) and most of the changes in the last cycle came from C++.

As for "back into C++", you have that backwards too. Much of GnuCash was originally written in Scheme, but the early developers realized that Scheme isn't a very good language for serious programming. There's a section of the Guile manual titled "Why Scheme is a better language for hacking". Well, hacking is fine for quick-and-dirty-use-once-or-twice code but as you no doubt know it's a terrible idea for code that will be distributed to ordinary users or maintained over decades. The options rewrite is the next step in our long-term goal of completely removing Scheme from GnuCash.

Modularity is good, yes. Unfortunately not everyone writing GnuCash code has understood that and Linas's careful design has become a rather large bowl of spaghetti code. Fixing that is another long term goal. 

John Ralls

> On Sep 6, 2021, at 1:54 AM, flywire <flywire0 at gmail.com> wrote:
> I recall recent discussion about separating the main app and reporting.
> App, database and reporting modules seem to offer a lot of scope for
> non-traditional integrations I've raised before. One of my repos uses ocr
> to load bank statements, and there's an ever-expanding range of smart
> analysis tools.
> I'm concerned John's described pulling report functionality back into c++.
> It's a while since I worked as a programmer but I've been involved in a
> broad range of system development. I was after a c++ developer a couple of
> years ago and a university lecturer told me they'd stopped teaching it a
> few years earlier. He said to concentrate on the functionality and let the
> implementation move with the technology. M a y b e  GnuCash is. The
> application doesn't need to run on 1990 technology anymore.
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel

More information about the gnucash-devel mailing list