4 ms·
GnuCash is solid. One thing that I love: I have full control over my data, and its stored as a simple xml (also supports SQLite, but why use more complex when s
by bdjsiqoocwk 2y ago
GnuCash is solid. One thing that I love: I have full control over my data, and its stored as a simple xml (also supports SQLite, but why use more complex when simpler works just as well?)
I have a few (comparatively minor) complaints about GnuCash, but they're around UI. Things like: it would be nice to assign all matching (eg Regen) transactions to a selected account, and stuff like that.
But overall, having something that is A) simple and B) I control fully, beats everything else.
The principles of free software show, I guess.
- equivocates 2y agoI would argue xml is more complex, but to each his own. :)
- MaxBarraclough 2y agoIt might be easier to use, but it's not a simpler technology.
- trollied 2y ago[flagged]
- badsectoracula 2y agoIt is not weird at all if you think of it from an implementation perspective: it is much easier and simpler to write an XML parser than it is to write a loader for SQLite databases, even if you do not write an SQL parser for it. After all there are way more independent XML parsers implemented in a variety of programming languages than there are SQLite implementations :-P.
- 2OEH8eoCRo0 2y agoHow is SQLite DB simpler than a human readable markup language?!
- jjav 2y agoIf you intend to read it by human eyes, you're right. That seems like a rare edge case though. If you want to interact with the data outside of the software, the common case is you're writing some script for that, in which case being able to use SQL is much easier.
- kaba0 2y agoBeing familiar != simple. Sure, more people have used SQL, but it’s definitely not impossible to just query XMLs. Hell, if someone has written JS they are likely familiar with DOM manipulations, which are more or less the same.
- consteval 2y agoI agree, I think this is what people miss when it comes to machine processing versus human processing. Human processing benefits from pretty colors and organization. Machine processing is almost the exact opposite, it benefits from data definition and strong guarantees around invariants. A graph is often the best way for a human to process something. But it's awful for a computer - computers can't see! At least not easily. A nice in-between is something like XML. But if it's primarily gonna be interacted with by a computer, might as well make it a database.
- bigstrat2003 2y agoI agree with bdjsiqoocwk that XML is way simpler than SQLite. In the case where I'm making changes by hand, it's much easier to open an XML file in a text editor and edit it, than it is to figure out an SQL query to do the same thing. In the case where I'm making changes programmatically, libraries will handle the complexity of XML for me, but I will still have to struggle through figuring out an SQL query if I'm trying to connect to SQLite. SQLite is easier if you're comfortable with SQL to the extent that it's little to no effort for you to write queries. But most people aren't that comfortable, and XML offers them significant advantages. I certainly prefer XML at any rate.
- noisy_boy 2y agoDisclaimer: no stats I bet if we do a random poll of the people here, more people would be comfortable writing a SQL query then doing xpath processing to query the same data.
- bdjsiqoocwk 2y agoI bed that's true. And that's nothing to do with which is more complex. I'm not saying SQLite is more difficult to use, I'm saying it's more complex. You're confusing the two.
- bdjsiqoocwk 2y agoSuppose you don't have SQLite, how do you open a SQLite database? The only way is you have to re-implement SQLite from scratch. Good luck with that. Now imagine you don't have vim, how do you open an XML file? You can use any of other thousands of text editors out there, or any of tens of libs in tens of different languages. I think your take that sqlite is simpler than a text file is the weird one.
- jjav 2y ago> Suppose you don't have SQLite, how do you open a SQLite database? The only way is you have to re-implement SQLite from scratch. Good luck with that. Or, you know, install SQLite. Although it is so ubiquitous that it is almost certainly installed already. Even on a mac it's there already. Or if you are on some system where it is not, a single package install away.
- bdjsiqoocwk 2y agoYes, I know what to do. Doesn't change the fact it's more complex. In fact, any database is more complex than a text file. You sound like the kind of person to push at work for a database when a file would suffice, introducing needless complexity.
- jjav 2y ago> In fact, any database is more complex than a text file. This statement is true, at a very superficial level. But it is missing all the nunace that goes into why would someone be using this file. Are you comparing opening a text file in a text editor vs. opening the db.sqlite file in a text editor? Yes, of course the text file is more usable. But what is the use case of just staring at the file? I can't imagine any. If you are someone who wants to programmatically use the contents of that file (outside gnucash application), surely you are writing code to process the data. And thus, being able to use SQL is massively more convenient.
- consteval 2y ago> You sound like the kind of person to push at work for a database when a file would suffice, introducing needless complexity Simplicity versus complexity is not a linear scale like you describe. Complex tools can lead to simpler implementations. This is the key people are missing. For example, C++ is much more complex than C. Okay, now build a generic sequential data structure. It's a quarter the LOC in C++ versus C, and it's a much simpler implementation. Because C lacks the tools, so we have to use macros or maybe void pointers. In this case, imagine you need to aggregate lots of data from different places, eliminate some of it, collapse some of it etc. For a reporting type thing. Well, SQLite is more complex than XML. But doing this in SQL is much less complex, because XML lacks the tools. SQL is built for this, so you can do it in a quarter the amount of code, or maybe even less.
- BeetleB 2y agoFar too often I've ended up with corrupt SQLite db files. At times it wasn't discovered until much later (i.e. most queries would still work). Very hard to fix (in fact, I never did fix any). With XML, under version control, you can identify easily what went wrong.
- klysm 2y agoXML is human readable, but barely. I do not trust any executable other than SQLite, postgres and a few others to correctly manage state on disk without corrupting it.