Reminds me of the Property List evolution: 1. "Under NeXTSTEP, property lists were designed to be human-readable and edited by hand, serialized to ASCII in a syntax somewhat like a programming language." 2. "In Mac OS X 10.0, the NeXTSTEP format was deprecated, and a new XML format was introduced." 3. "Since XML files, however, are not the most space-efficient means of storage, Mac OS X 10.2 introduced a new format w…
Property lists -> XML -> Binary Property Lists
JSON -> JSON Schema -> Binary JSON
XML -> XML Schema -> XML Namespaces -> Binary XML
Or you can skip all that faffing around and just jump straight to protocol buffers. :)
ps. Protocol Buffers have a text format too that looks very similar to JSON. And you can encode protocol buffers as JSON, though I'm not sure there's good software support for it yet. I'm working on it.