title: Pros and cons for different configuration formats?
body: <p>I've seen people using *.cfg (Python Buildout), *.xml (Gnome), *.json (Chrome extension), *.yaml (Google App Engine), *.ini and even *.py for app configuration files (like Django).</p>
  
  <p>My question is: why there are so many different configuration file formats? I can see an advantage from a xml vs json approach (much less verbose) or a Python one (sometimes you have a Python app and don't want to use a specific module just to parse a config file), but what about the other approaches?</p>
  
  <p>I know there are even more formats than those configuration files I exemplified. What are really their advantages in comparison to each other? Historical reasons? Compatibility with different systems?</p>
  
  <p>If you would start an application to read some kind of configuration files (with a plugin ecosystem), which one would you use?</p>
  
  <p>Which ones that I gave as example are the oldest ones? Do you know it's history?</p>