XML Output: libxo - provide single API to output TXT, XML, JSON and HTML

Baptiste Daroussin bapt at freebsd.org
Wed Jul 30 17:04:02 UTC 2014


On Wed, Jul 30, 2014 at 09:18:40AM -0700, Jos Backus wrote:
> On Jul 30, 2014 12:15 AM, "Baptiste Daroussin" <bapt at freebsd.org> wrote:
> >
> > On Tue, Jul 29, 2014 at 09:44:17PM -0700, Jos Backus wrote:
> > > On Jul 29, 2014 8:46 PM, "Simon J. Gerraty" <sjg at juniper.net> wrote:
> > > >
> > > >
> > > > On Tue, 29 Jul 2014 16:30:53 -0700, Jos Backus writes:
> > > > >> You certainly cannot wait for all of it to arrive before you start
> > > > >> rendering.
> > > > >
> > > > >Understood. This is why a serialization output format that supports
> > > > >streaming data is useful.
> > > >
> > > > Indeed; XML works fine for that.
> > >
> > > Not to beat a dead horse, but so does YAML, and it's more
> lightweight/less
> > > verbose so I personally find it more elegant. But sure, XML would work
> as
> > > well.
> > >
> > YAML is not more lightweight at all, it is really heavy to parse compared
> to
> > XML or JSON.
> 
> By lightweight I meant syntax verbosity, not computational load (although
> it seems easy to emit). It's a more flexible format, and that comes with a
> certain price. The question is whether that flexibility is needed or
> useful. If JSON can't be used because of its limitations, I would
> personally prefer the less verbose YAML over XML.
> 
About json what limitation are you talking about?

In yaml you have 2 syntax, on which is inconsistent but user friendly and the
other which as ugly as XML imho

this_is_string: treu
this__bool: true
so_if_i_want_a_string_true_i_need_quote: "true"

If I want to be consistent I need to use the canonical form of yaml:

---
!!map {
  ? !!str "so_if_i_want_a_string_true_i_need_quote"
  : !!str "true",
  ? !!str "this__bool"
  : !!bool "true",
  ? !!str "this_is_string"
  : !!str "treu",
}

and now this is very very ugly :(

Plus yaml is context dependant and space dependant resulting in people getting lost about:
"Why this yaml is not valid":

hu: ha
hi:
	- test
        - test2

Or why this one is not valid either?

hu: ha
 hi: test


I have been there with pkg(8) after being a huge suppoter of YAML I'm now more moderated :)

YAML was not machine friendly at all in the end and very very error prone for humans :(

regards,
Bapt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20140730/f0a2cfbd/attachment.sig>


More information about the freebsd-arch mailing list