Still worth to look more deeply into Scheme?

John Ralls jralls at
Sun Mar 6 10:20:06 EST 2016

> On Mar 6, 2016, at 6:08 AM, Carsten Rinke <carsten.rinke at> wrote:
> Hi there,
> after quite some time I started to recap on the activities that I had followed up.
> Part of these were improvements on reports, mostly minor things like overlapping x-axis or introduction of line charts.
> When coming to the line charts I came across the implementation of the networth charts.
> My first impression is that these hint at a more modularized utilization of chart reports as this is implemented today.
> I could think in the direction of working out a proposal for something more complex.
> But is it still worth it?
> Background to this question is that lately I read that scheme is considered clumsy and old-fashioned, so it should be take out of the project, replaced by something modern, maybe python.
> If that is the case, I would stick to tiny improvements here and there that might make life a bit easier until the modernization has taken place.
> What is the roadmap for replacing scheme with something else?
> Will it be part of the C++ transition work, so it might be available around 2018?


We're not really talking about the reports as part of removing Scheme. Rather there are parts of the main program that are done partly in Scheme and partly in C: Equation parsing and file properties (the business options, counters, trading accounts, etc.), and online quotes spring immediately to mind, but I think there are a couple of others. The QIF importer is implemented in Scheme but the others are in C. That's a serious obstacle to both portability and maintainability, so we want to clean it up and get it all in C. 

What we eventually do with reports is an open question. The problem with Scheme isn't so much that it's clumsy and old-fashioned, it's that not very many people know it and it takes a lot of work for people who are used to fortran/algol style languages to understand how to work with lisp-based ones. I've suggested javascript in the past: It's a lot like scheme in terms of being more functional than procedural but with the more familiar curly braces and semicolons. Since we ship a browser as part of GnuCash it's also already available. I think our users would prefer something that doesn't require knowing programming at all, but designing something like that is not trivial. We talked about making GnuCash work with an external report writer, but there doesn't seem to be any suitable FLOSS package. Whatever we do with reports it would be at least two major releases out just because we need to get the lower level work done first. 

I hope we'll have the lower-level work mostly done by 2018. When it is we'll be ready to discuss reporting more concretely.

John Ralls 

More information about the gnucash-devel mailing list