Remix.run Logo
▲ MrBuddyCasino 5 hours ago

JEP 540: Simple JSON API

  > trailing commas and comments are not supported
Be strict in what you produce, be lenient in what you accept. Grr.
▲mpyne 4 hours ago | parent | next [-]

From the JEP's goals: "Provide only those data types and operations required for strict conformance to RFC 8259, in order to facilitate machine-to-machine communication."

In that case they made the right choice, as machines won't be inserting trailing commas or comments in the first place, and the risk of having consuming apps inadvertently accept invalid data would be high otherwise.

▲chowells 4 hours ago | parent | prev | next [-]

Fortunately, we now have 50 years of evidence of the negative effects of this philosophy on the ecosystem. Being strict in both results in net positive effects for the entire ecosystem. Trying to be lenient in what you accept results in HTML5, where the exact parse tree for every possible input sequence is specified in order to enforce compatibility. It's no longer lenient, because that doesn't work.

▲MrBuddyCasino 4 hours ago | parent [-]

Apples and oranges.

One is „accept a wide array of syntactically malformed input, ill defined, substantially complicating the parser“, the other „accept two trivial extensions to the standard that are widely used and don’t affect the resulting data in any way.“

▲dwaite 2 hours ago | parent | next [-]

So far nobody has tried to get trailing commas into the standard AFAIK.

Comments were explicitly disallowed from JSON since the beginning, because they could be used as a side-channel for vendor-specific extension mechanisms and harm interoperability.

▲dwohnitmok 3 hours ago | parent | prev [-]

> accept two trivial extensions to the standard that are widely used and don’t affect the resulting data in any way

That's always how it starts. If they're truly trivial the reasoning also cuts the other way. Remove them upstream.

▲pixl97 4 hours ago | parent | prev [-]

This is a great way to ensure you have good application interoperability, but really starts going down hill when you're talking about security and consistency.