Applying markup to complexity: The blurry line between markup and programming by Simon St. Laurent.
Simon’s review of Balisage will make you want to attend next year, if you missed this year.
He misses an important issue with JSON (and XML) when he writes:
JSON gave programmers much of what they wanted: a simple format for shuttling (and sometimes storing) loosely structured data. Its simpler toolset, freed of a heritage of document formats and schemas, let programmers think less about information formats and more about the content of what they were sending.
…
XML and JSON look at data through different lenses. XML is a tree structure of elements, attributes, and content, while JSON is arrays, objects, and values. Element order matters by default in XML, while JSON is far less ordered and contains many more anonymous structures. (emphasis added)
The problem with JSON in a nutshell (apologies to O’Reilly): anonymous structures.
How is a subsequent programmer going to discover the semantics of “anonymous structures?”
Works great for job security, works less well for information integration several “generations” of programmers later.
XML can be poorly documented, just like JSON, but relationships between elements are explicit.
Anonymity, of all kinds, is the enemy of re-use of data, semantic integration and useful archiving of data.
If those aren’t your use cases, use anonymous JSON structures. (Or undocumented XML.)