<story><title>A 1.5GB string</title><url>https://blog.backslasher.net/1.5GB-string.html</url></story><parent_chain><item><author>berkes</author><text>I&amp;#x27;d argue that JSON is one of the least Human Readable serialization formats.&lt;p&gt;It lacks comments. Has no way to offer context. Cannot impose limitations, and normalizing needs additional, often poorly supported RFCs (JSON-LD or pointers).&lt;p&gt;It also is a poor non-human readable format, as it lacks crucial types (datetime, decimal) is rather verbose (just imagine the terabytes bandwidth wasted, globally on all these commas and curly braces) and cannot be parsed streaming.</text></item><item><author>userbinator</author><text>Ironically, not long ago there was an article about how hard string handling is in C, so programs tend to be written to avoid manipulating strings as much as possible. In other languages, where strings are easy to use, it encourages inefficiency like this. The term &amp;quot;stringly typed&amp;quot; also comes to mind.&lt;p&gt;JSON truly is the new XML, both in terms of advantages and disadvantages. I wish people would stop using it for everything and realise that using a &amp;quot;human-readable&amp;quot; format for data that is 99.999999% not going to be seen by a human is absolute insanity in terms of inefficiency.</text></item></parent_chain><comment><author>berniedurfee</author><text>Agreed. Lack of comments and lack of proper schema enforcement makes JSON a junk pile of a data format.&lt;p&gt;Definitely not an improvement over XML. Hopefully the next popular standard data format will learn from the past and take the best of previous attempts.</text></comment>
<story><title>A 1.5GB string</title><url>https://blog.backslasher.net/1.5GB-string.html</url></story><parent_chain><item><author>berkes</author><text>I&amp;#x27;d argue that JSON is one of the least Human Readable serialization formats.&lt;p&gt;It lacks comments. Has no way to offer context. Cannot impose limitations, and normalizing needs additional, often poorly supported RFCs (JSON-LD or pointers).&lt;p&gt;It also is a poor non-human readable format, as it lacks crucial types (datetime, decimal) is rather verbose (just imagine the terabytes bandwidth wasted, globally on all these commas and curly braces) and cannot be parsed streaming.</text></item><item><author>userbinator</author><text>Ironically, not long ago there was an article about how hard string handling is in C, so programs tend to be written to avoid manipulating strings as much as possible. In other languages, where strings are easy to use, it encourages inefficiency like this. The term &amp;quot;stringly typed&amp;quot; also comes to mind.&lt;p&gt;JSON truly is the new XML, both in terms of advantages and disadvantages. I wish people would stop using it for everything and realise that using a &amp;quot;human-readable&amp;quot; format for data that is 99.999999% not going to be seen by a human is absolute insanity in terms of inefficiency.</text></item></parent_chain><comment><author>Someone</author><text>&amp;gt; as it lacks crucial types (datetime, decimal)&lt;p&gt;Decimal is there, isn’t it, as part of ‘number’, which lumps together fixed-size integers, IEEE floats and doubles, bigints and bigfloats, and leaves it to the parser to make the right guess as to how to interpret them (often assisted by having the programmer specify a target data type)?&lt;p&gt;Lumping all those together as ‘number’ makes for a much simpler grammar, but I think that’s not worth it for its negative effects on interoperability. How many json parsers can (easily) read a value of &lt;i&gt;1234567890123456890E0000000001&lt;/i&gt; and write back the same string to a json file?&lt;p&gt;Apart from datetime, I’d add duration as a basic type, too, even though that has the problem of being imprecise. Users will want to specify durations such as “1m” or “1y” (is that 365 days? 365.2425 to correct for leap years? Does it depend on interpretation by the user? is it a lunar year of 354&amp;#x2F;355 days as in the Islamic calendar? Etc)</text></comment>