Remix.run Logo
Spivak an hour ago

Hard disagree about attributes, each tag should be a complete object and attributes describe the object.

    <myobject foo="bar"/>
    // means roughly
    new MyObject(foo="bar")
But objects can also be containers and that's what nesting is for. There shouldn't ever be two dimensions in the way you're describing. The pattern of

    <myobject>
      <foo>bar</foo>
    </myobject>
is the root of most XML evil. Now you have to know if myobject is a container or a franken-object with a strict sub-schema in order to parse it. The biggest win of JSON is that .loads/.dump make it really obvious that it's for serializing complete objects where a lot of tooling surrounding XML makes you poke at the document tree.