Hacker News new | ask | show | jobs
by daveslash 1177 days ago
The Complexity of XML reminds me of something from Adam Bosworth's ISCOC04 Talk [0]. To me, the big takeaway is that HTML succeeded because of it's limitations, not despite of them. JSON seems very simple compared to XML. XML seems to be very powerful, but also very complex - it's like, if all you need to do is pick your kids up from Soccer Practice, you don't need the powerfullness (complexity) of the Space Shuttle in your vehicle.

  In 1996 I was at some of the initial XML meetings. 
  The participants� anger at HTML for �corrupting� 
  content with layout was intense. Some of the initial 
  backers of XML were frustrated SGML folks who wanted 
  a better cleaner world in which data was pristinely 
  separated from presentation. In short, they disliked 
  one of the great success stories of software history, 
  one that succeeded because of its limitations, not 
  despite them. I very much doubt that an HTML that had 
  initially shipped as a clean layered set of content 
  XML, Layout rules – XSLT, and Formatting- CSS) would 
  have had anything like the explosive uptake.

https://adambosworth.net/2004/11/18/iscoc04-talk/
1 comments

But you don't have to use any more of the XML-related standards than you want to. You can ignore schemas, and add-on technologies like XPATH and XSLT and just use XML as a hierarchical tag-value format, just like JSON.

At this level they are both about equal in complexity: JSON has data types that XML doesn't, and XML has attributes and CDATA that JSON doesn't. JSON syntax is more succinct, but XML syntax is more regular.

XML is good for documents that don't have a regular markup (XHTML, DocBook, JATS, MathML, etc.) where you can mix content elements -- e.g. italic annotations.

JSON is good for structured data/records such as serialized data structures found in RPC protocols.

They both have their own pros and cons that make them suited to different use cases. Choose the one that best suites your data model and use cases.