I remember a few years back, people hated the Windows registry. Even long time Windows users have had a love/hate relationship with it. Surely open source could come up with something better. I mean, all those Linux boys were going on about how text files were more robust and easier to edit and yadda yadda.
But hmm, what actually happened? Every open source app decided to make it's own dot-file or dot-directory. You ended up with home directories full of dot-entries. Ever try looking at your home directory through a samba share from windows? Good luck actually finding your files.
Then some brilliant mind came along and said, oh it'd be nice to have a uniform api to store hierarchical configuration data. Then every app could store configuration in a standard way, and not have to write it's own parsing and loading and serialization and de-serialization routines. Brilliant!
Out comes gconf, the registry's slightly better looking cousin. Yes, it's slightly more human readable, and yes it has a pluggable backend (no, the g does not stand for gay) that is totally useless. But lets look at problems that the windows registry has that gconf has solved:
- Buggy apps can shit all over your settings: Doh! still there with GConf.
- Apps don't clean up their data when they're uninstalled: Doh! still there with GConf. There's even a cleaner for it.
- Apps have to store "large" data somewhere else on the filesystem: Yep, still there with GConf.
- There's a lot of COM activation data in there that's cryptic: Activation? what's that? Bonobo? DCOP? But seriously, d-bus has a directory where files describing how to activate certain interfaces go. Want to get information about interfaces? go parse it yourself.
Yes gconf has some other features. It has comments for keys. Because you know, instead of writing UI for these knobs, we just want to be lazy and write a cryptic comment about what this switch does that you can only understand if you know how the software works. Way to empower the user there. You know what solved the lack of comments in the windows registry? Google. You see, when lots of people actually use your platform, then they tend to learn about things and write them down. And see, there's this little thing called the internets through which they can efficiently share this information. And surely, if the settings you can set in your program are only for the uber elite, then they can be bothered to search the web. I mean that's probably how they found out about your secret feature anyways. They probably installed your desktop, realized none of their apps worked, and decided that they will instead fill their lives with obsessive tweaking.