[Haskell-cafe] Standard package file format

Joachim Durchholz jo at durchholz.org
Fri Sep 16 08:46:08 UTC 2016

Am 16.09.2016 um 10:24 schrieb Chris Smith:
> With this in mind, a lot of the statements about these various languages
> are not entirely convincing.  That it's a superset of JSON?  It's not clear
> why this matters.

It does matter for people who already know JSON: They can skip over the 
config file syntax and dive right into the semantics.
Given that a substantial fraction of programmers knows JSON, using that 
syntax would create a lower entry barrier.

The same argument can be made for YAML.

This argument cannot be made for TOML at this time, maybe never if 
TOML's limitations prevent widespread adoption.

 > A psychological impression of complexity?  Just not
> anything I've seen evidence of.  Indeed, aside from the rather painful
> many-years-long migration, the *cost* (though certainly not a prohibitive
> one) of moving to something like YAML or TOML is that they have a bit
> louder syntax, that demands more attention and feels more complex.

YAML's complexity is partly because it tries to cover everything, partly 
because it is pushing hard to be both human-readable and machine-readable.
It's pretty good at this actually, though I guess 20/20 hindsight could 
lead to improvements - but not enough to make a new YAML version worth 
the effort.

> There is one substantial disadvantage I'd point out to the Cabal file
> format as it stands, and that's that it's pretty non-obvious how to parse
> it, so we will always struggle to interact with it from automated tools,
> unless those tools are also written in Haskell and can use the Cabal
> library.  That's a real concern; pragmatic large-scale build environments
> are not tied to specific languages, and include a variety of ad-hoc
> third-party tooling that needs to be integrated, and Cabal remains opaque
> to them.  But that doesn't seem to be what's motivating this conversation.

That's implicit in the "it would be nice to have a standard format" 
argument, even if it hasn't been explicitly voiced yet.

More information about the Haskell-Cafe mailing list