Monday, January 7, 2008

Bad UI : Persisting application settings (Windows)

This is the sad truth: too many applications forget the fact that things are changing:
  • a user could change his computer,
  • could reinstall Windows,
  • could upgrade to a different version of the OS,
  • could need to match the same settings on 2 different machines,
  • and so on.

Most apps just took for granted "Persist thy settings in the registry", and went on doing it.

This is not a bad idiom per se, the only problem is that those settings should be easily exported to some other medium, like a text file or so.

Reinstalling Windows is a pain in itself, you'll have to reinstall a lot of applications - and on top of that, you need to reset each application to give it the feel you've been used to. Reinstalling an OS or whatever I outlined above should be a much easier process.

Most applications (especially those non-trivial ones) should be able to import/export their settings. Most languages already have libs to deal with settings - however, exporting/importing could be a bit difficult, but hey, shouldn't be too difficult to come up with your own lib. And for C++, you can use my lib for free.

To make it even easier for users, there should be 2 global WM_ events:
  • one for export settings to file
  • one for import settings from file
Thus, people could even automate the process of exporting/importing settings. Am I dreaming?


I, Robot said...

I agree you should be able to export (and back up, restore, and import) all your configuration data, but Microsoft has done a poor job of setting a standard here, IMHO.

The raw material is there, as always, but the usability is not.

Apple has done a slightly better job here - the Keychain for managing all your security data, for example - but it takes a bit of tweaking to have all your user data on a single partition, for example.

John Torjo said...

You're definitely right about Microsoft :)
I guess M$ just wanted to make sure the registry is used, and did not look passed that.

About Apple : I'm not familiar with Mac but you're probably right, the keyword here being "slightly".

In today's tech world, we should have sites that allow you to save and share application settings - between users, etc. You should be able to save your existing config, and load it into someone else's computer, etc.

But I'm dreaming ;)