They invented XML for a reason… So why doesn’t anybody use it? eXtensible Markup Language is the perfect format for storing configuration files and settings for many different reasons. Most obviously, it’s very clear and straight-forward. There are no two-ways about any piece of information or data. You get what you want, when you need it.
The .NET Framework does things right here, storing per-application settings in “.config” files in the user and/or the application directory that have the settings listed in valid XML data which nest correctly and can be easily accessed via an auto-parser in the application itself. Linux now uses XML files for many of its configuration (well, not XML per-say since they don’t use a recognized top-level namespace, but the XML hierarchical structure is there alright). So why can’t Windows just cut to the chase and make the switch – only good can come of it!
The registry may be a nice “hierarchical” place to store bits and pieces of data… but the problem is that it is prone to corruption and conflict because of the way the API is designed. The registry API doesn’t enforce strict hierarchical data access for read and write, so many times things go haywire. Like Windows Explorer for example. Fellow blogger Kristan Kenney has just posted (yet another) bug in Windows Vista that ends up with Windows Explorer thinking every single folder on your hard drive is a photo album — and displaying the files as such!