Dear developers,
Please don't use JSON for configuration files. It is intended for carrying data, and nothing else. Therefore, it is good at carrying data, and nothing else.

I strongly believe that anything that doesn't support comments shouldn't be used for configs. Comments are indispensable for short documentation, or putting a URL to proper documentation.

There are other plain text file formats better fit for this purpose, such as TOML, YAML, and even XML.

If you coded your program in JS, I understand that you might be inclined to use JSON. Maybe you want to reduce bloat or dependency by not including a TOML or YAML parser. But you are making it more difficult for us to contribute to your project, or fix something on our end.

It is quiet old too. Probably older than time itself given that it doesn't support date standards ISO 8601 or RFC 3339 out-of-the-box. That is because it doesn't need to, because it is not for configurations or manifests.

What is your favourite plain text format for configurations?
JSON
14.9%
TOML
34.9%
YAML
32%
Other (comment please)
18.3%
Poll ended at .

After reading so many replies, it is clear that way too many new variants of JSON were developed to make JSON do what it was never meant to do. JSON is for carrying data between server and client in JavaScript fashion. It is amazing for that purpose. After all, JS developers came to expect variable type errors to surface, and not worry about them.

This was already achieved with XML, but some people love to reinvent the tire, hence the JSON forks with comments i guess.

TOML would be horrible as a JS oriented data carrier.

TOML was meant to be a different thing, such as a well understood config format that is easily interpreted by both humans and machines. Semantics help avoid ambiguation. It ain't perfect.Lack of type declaration may get us sometimes. For instance, if people forget that phone and version "numbers" are actually strings, they may omit double qoutes causing them being interpreted as an integer, float or error.

But a comment line reminding us for such pitfall would go a long way.

Consider this:
distro_name = "Ubuntu"
distro_version = "14.10"
# Run this if you forgot your distro version: cat /etc/lsb-release | grep "RELEASE"
# Then enter version in double quotes.

TOML won't freak out like YAML if you have 8 of anything, or live in Norway. This doesn't mean that TOML is the most superior file format for configurations, XML is much better.

XML is the back bone of so many things you use everyday that if it had such pitfalls, world wide web would crash hourly. Its only short coming is human readability.