kristoff_it 3 hours ago

Reposting my comment from when Ziggy came up on Lobsters:

Hi all, author here, just a quick warning: the version is v0.0.1 for a reason.

I developed Ziggy as part of my work on the Zine static site generator (https://zine-ssg.io) and, while I do believe there’s something to improve over JSON (as I stated in the frontpage copy, and other documentation pages) at least for my own usecases, I have developed Ziggy up to the point of being usable from Zine and then went back to work on the SuperHTML templating language / html language server.

I will do in the near future a second round of polishing on Ziggy and smooth out some things I’m unhappy with (e.g. custom string literals and how those interact with enums in particular), so beware that Ziggy has to compete for resources with the rest of the Zine ecosystem… and a lot of things in the Zine ecosystem require more work still.

Lerc an hour ago

I think I like it, The multi-line \\ I'm not so sure about, but it means you can indent multi-line fields without screwing up the content. I guess it's only when manually creating entries that you get annoyed by typing the same characters over and over.

I also quite like the statement

Alpha, using Ziggy now means participating in its development.

It is neither, "go-away, it's not ready", nor boldly proclaiming to be more than it is. It encourages engagement.

  • samatman 4 minutes ago

    Double-backslash for multiline literals is standard Zig and it takes a bit of getting used to.

    I suspect I'll always find it ever-so-slightly unsatisfying because I really want the token to be `\\ `, and it's just `\\`. I don't want those backslashes touching my text!

    It's probably the better rule, I say, gritting my teeth slightly, because if you want the text indented, let's say four spaces, making sure it's actually five is annoying and easy to forget. But ugh I don't like looking at unindented multi-line Zig text. Imagine leaving no space between `//` and a comment, I would never. Never!

    Eh. You get used to it.

ruined 3 hours ago

the bytes type seems awkward. a compromise that leaves noone happy

why should i prefer this over protobuf?

  • kristoff_it 2 hours ago

    I would prefer this over JSON.

    For Ziggy to be competitive vs protobuf it would need more machinery for managing schema changes, which currently is not there at all.

    I'm currently writing an application where I'm doing binary serialization of data and I'm not sure yet how that should play into Ziggy, but as I explore my use cases more I will change Ziggy accordingly.

    That said, I will probably always err on the side of small scale, so it might very well never become a format worth considering vs protobuf. We'll see.

    • your_fin 17 minutes ago

      If you haven't seen it, I'd recommend checking out Amazon's Ion data format: https://amazon-ion.github.io/ion-docs/

      It's schemaless, so the binary format can't be as effecient as protobufs, but IMO the minor overhead is worth not paying the costs protobuf has to.

      The text format (which is interoperable) is a strict superset of JSON that resolves many of the issues ziggy tackles (tagged unions, comments, verbosity, multiline strings), although not quite as prettily for configs.