I used to hate databases. I really did. You’d never guess it today would you? 😛
The basic reason was: I didn’t actually understand them, and I couldn’t really code SQL. Over the past few years my use of databases has escalated dramatically, and with it: my understanding of relationships, sets and SQL. With my gain in understanding, I’ve formulated the idea that it would be really cool if the OS came with an embedded database. Each application can reference it from the same “location” (whether it be on the disk, an API, socket, pipe or whatever). Each application auto-magically gets it’s own database, and can check if it’s a “new” (unpopulated) database.
For games it would be great for stats gathering; for music software it would be great for collection management (Amarok uses SQLite); you get the idea. Once the application is uninstalled, it’s database is dumped and compressed. Archived databases are stored for say 6 months and then deleted (in case you re-install the software). Lets face it, storage on disk is cheap in most instances.
Part of these thoughts revolve around my ideas for the ideal OS, based mostly on Java (though probably native compiled for performance). Where the database could be a simple JNDI lookup for applications.