Originally posted by Doctor Q
I'm not convinced that plist files and/or NetInfo-type services have some inherent design advantage over the Windows Registry, or even over old-style Windows INI files, for that matter. What I see is that, in practice, the implementation of the Windows Registry results in corruption problems more often than what I see in plist files, but I'm talking about the design principles involved, not the implementations. Most application programs have details, such as records of their installation, licenses, preferences, etc., to be stored somewhere. Some are user specific; some are system-wide. Some settings apply across applications. And the operating system itself has user-preference settings, system-wide settings, and information about applications.
Should it be stored in a centralized system-managed database? Should it be stored in each application's private area? Should it be stored in a central directory as a set of application-specific files? There are tradeoffs of efficiency involved, but the choice shouldn't really matter to users or even to application writers. As long as the rules and conventions are clear, things will work properly when code is correct. When the inevitable bugs cause the wrong information to be stored, no matter where it is, problems will result.
Perhaps experience has shown us that use of a central repository makes it more likely for one buggy application to harm another's stored information. If so, Windows will continue to suffer, but Mac OS X hasn't completely avoided this problem either.