News for hackers. Stuff that matters.
Re:YAML: Probably not so great after all by dbcurtis on Sunday August 18, 2019 @03:05PM (#20732163)
Attributes are XML’s foot-gun.
Re:YAML: Probably not so great after all by twic on Sunday August 18, 2019 @06:32PM (#20733375)
Particularly annoying is that there's no way to do lists with attributes. Looks good:

  <user name="alice" group="wheel" />
Oh no:

  <user name="alice" groups="wheel admin sudoers" />
Or is it one of:

  <user name="alice" groups="wheel,admin,sudoers" />
  <user name="alice" groups="wheel:admin:sudoers" />
  <user name="alice" groups="wheel;admin;sudoers" />
Or give up and use elements:

  <user name="alice">
    <group>wheel</group>
    <group>admin</group>
    <group>sudoers</group>
  </user>
Hold on, should there be a container?

  <user name="alice">
    <groups>
      <group>wheel</group>
      <group>admin</group>
      <group>sudoers</group>
    </groups>
  </user>
XML really needs either richer attributes, or no attributes.
Re:YAML: Probably not so great after all by Ooolin on Sunday August 18, 2019 @10:30PM (#20734440)
Replace with "Element" with "Class" and "Attribute" with "Property" in your examples.

It's your job to decide how the data should be structured, in any language.

I would do the following :

  <user name="alice">
    <groups>
      <group uid="wheel"/>
      <group uid="admin"/>
      <group uid="sudoers"/>
    </groups>
  </user>
Re:YAML: Probably not so great after all by papaf on Sunday August 18, 2019 @03:34PM (#20732310)
Attributes are XML’s foot-gun.

I disagree. Back in the day we used attributes for everything that was key value and inner tags for anything with structure. We also formatted for clarity:

    <lunch
      env="outside"
      food="sandwiches"
      drink="cola"
    />
Compared with what we used to do, I look at attribute-less maven pom.xml with horror.
Re:YAML: Probably not so great after all by dbcurtis on Sunday August 18, 2019 @04:23PM (#20732578)
The decision of when and how to use attributes is the thing that is most often done wrong or clumsily in an XML file. That is my point.
Re:YAML: Probably not so great after all by johnchristopher on Sunday August 18, 2019 @04:04PM (#20732486)
What if it's to be used by french speaking software/people ?

    <lunch
      env="outside"
      envfr="dehors"
      food="sandwiches"
      foodfr="sandwichs"
      drink="cola"
    />
Or

    <lunch
      env="outside"
      food="sandwiches"
      drink="cola">
          <label type="env" language="fr">Dehors</label>
          <label type="env" language="de">Außenseite</label>
          <label type="env" language="en">Outside</label>
    </lunch>
Quite curious about it.
Re:YAML: Probably not so great after all by yosamino on Sunday August 18, 2019 @05:18PM (#20732950)
I guess this way:

  <lunch
    env="outside"
    food="sandwiches"
    drink="cola">
    <label xml:lang="fr">Dehors</label>
    <label xml:lang="de">Draußen</label>
    <label xml:lang="en">Outside</label>
  </lunch>
says[0]the w3.

[0]https://www.w3.org/TR/REC-xml/#sec-lang-tag

Re:YAML: Probably not so great after all by johnchristopher on Monday August 19, 2019 @11:40AM (#20738710)
I see, thanks. (I also see you corrected my broken German ^^).
Re:YAML: Probably not so great after all by snuxoll on Sunday August 18, 2019 @05:05PM (#20732854)
Putting l10n/i18n data inline is generally not a pleasant experience, and this problem persists regardless of what serialization format you are using. Either have separate data files per-locale that are merged with the defaults or store the localized strings in a central location (ala your usual gettext setup).