To each their own I guess: my experience is the exact opposite. Plain text looks simple to human eyes but parsing it in a structured way is a nightmare and scripting edits to plain text is a mess.
Databases on the other hand are built for this. After years of dissatisfaction with plain text accounting and many hours spent trying to improve it, I now use SQLite and it has been an enormous improvement.
I agree with using the tool that works best for your purpose.
For me, I found that the SQLite models of GnuCash aren't straightforward to query. That's why Beancount created its own query language. Martin Blais has a good discussion of why a traditional database doesn't quite fit for many accounting purposes https://beancount.github.io/docs/beancount_query_language.ht...
Part of the reason I settled on beancount over h/ledger was the ease of writing python plugins to handle mutations and rules, and reuse the official parse/output as a library.
Plaintext is nice for git but I only feel that when fixup-ing a single or small number of transactions. It does feel nice to be have all the details of a transaction in one place in a visually useful way. For one-off hacking and such it definitely feels easier to write O(n^4) python looping over trying to describe things with SQL and working at a scale where it doesn’t matter.
Plaintext as a UI into a SQL store seems an interesting project. I would love a git integration for committing changes after diff review and being able to stage individual txns or parts. Many years ago I was frustrated with ledger’s more loosey goosey syntax and trying these things and eventually gave up whatever the idea was at the time. I like the idea of a constant bidrectional sql<->plaintext that provides a requirement for reproducible parsing and serializing
Not to go off topic - this story did inspire me to install gnucash again and enjoy the GUI -
> parsing it in a structured way is a nightmare
Ah, well that’s the job of the PTA app - converting “just text” to something very structured and validated. Which can then be moved into SQLite, if one likes.
> and scripting edits to plain text is a mess.
I suppose it depends. There are a lot of very powerful and quick tools and techniques for automated or assisted text munging.
Databases on the other hand are built for this. After years of dissatisfaction with plain text accounting and many hours spent trying to improve it, I now use SQLite and it has been an enormous improvement.