[crossfire] File format

Steven Johnson shjohnson.pi at gmail.com
Wed Jan 12 21:42:50 CST 2022


I was curious how each format would look when using actual crossfire data.
So, I made this webpage to show it!
https://shjohnson314.com/cf/format-compare/

I show the following side-by-side: Current, YAML, XML, JSON, TOML
using an example of formulae descriptions.

I also included pros and cons for each (as objective as possible).

If most people don't mind the whitespace dependency, then I most prefer
YAML, otherwise XML.

When creating the examples, I noticed the following problems with JSON:
- Does not allow comments (as I said above, though Nicolas suggested
including them as part of our data)
In the example I show "data-comments" for the whole file and individual
items.
I also include regular comments that don't belong to a particular object
(except in JSON).
- Does not allow multiline strings
This is what makes me dislike JSON for this use case. We can't include
comments or
"data-comments" that are more than one line (easily/nicely).
Anything else that is more than one line (messages, books) would look bad
too in JSON.

Because of these problems with JSON, my next favorite would be XML.

I included TOML only because it came up in comparisons between different
file formats. It's simple but I
couldn't get formula ingredients nicely formatted. TOML does not allow
arrays with different types.

If I got some pros or cons wrong please let me know.

Steven H Johnson

On Tue, Dec 21, 2021 at 12:08 PM Nicolas Weeger <nicolas.weeger at laposte.net>
wrote:

> Hello.
>
>
> > Since XML is a subset (superset?) of SGML, I think finding and
> > incorporating an XML parser is much easier than a SGML one.
>
> Probably, yes.
>
> > I think the biggest tug of war would be between JSON and XML. I would
> > likely lean toward JSON, since it's more compact.
>
> Both are good enough in my eyes, so I guess it'll depend on who actually
> writes the first code :)
>
>
> > I think it's important that editing tools are more or less ironclad
> > before making a big change. As hard as it is to learn to make and
> > submit new/changed content, I'd hate to see it get more intimidating
> > through adoption of new formats.
>
> Well, some people find modifying text files intimidating, I guess... Yes
> tools
> should be as ironclad as possible, but bugs happen... Besides, a good text
> editor nowadays will handle JSON or XML without too much hassle, so
> changing
> manually would still be possible.
>
>
> > Overall, I'll be sad to see a departure from the current flat files,
> > though I acknowledge that the need for something more "standard" is
> > legitimate.
>
> Well, you can always write a parser generator :)
>
> Given the flat text format definition (in what language?), a generator
> that'll
> write a parser (and writer) for it.
>
> Then we can keep the flat files :D
>
>
> Best regards
>
>
> Nicolas_______________________________________________
> crossfire mailing list
> crossfire at metalforge.org
> http://mailman.metalforge.org/mailman/listinfo/crossfire
> IRC: http://crossfire.real-time.com/irc/index.html
> Discord: http://crossfire.real-time.com/discord/index.html
> Project Site: https://sourceforge.net/projects/crossfire/
> Wiki: http://wiki.cross-fire.org/
> Website: http://crossfire.real-time.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.metalforge.org/pipermail/crossfire/attachments/20220112/c6424fc3/attachment.htm>


More information about the crossfire mailing list