Live data from Hacker News

Dhall: A Non-Repetitive Alternative to YAML

dhall-lang.org

151–160 of 181 posts

Re: Dhall: A Non-Repetitive Alternative to YAML

#151
post #63

Earlier quoted context omitted.

One valuable point of Dhall is that it is programmable (yet not TC) in such a way to that you can e.g. describe a whole system entirely in Dhall and then (in Dhall!) derive whatever further configurations (plural!) you need from that. This is much more feasible than in e.g. YAML because Dhall is strongly typed. So you could describe e.g. a cluster of machines entirely in Dhall and derive Ansible YAML scripts (with al…

I mean, jq is a powerful programming language. Did you look at the link I posted?

Well, you did format it so that it's not clickable...

Re: Dhall: A Non-Repetitive Alternative to YAML

#152

Earlier quoted context omitted.

Because it is a good mix of features, syntax, execution speed and correctness. Of course. Didn't you read the article?

I did, and it's bad form to suggest otherwise. I was asking about your personal opinion, since you said it was great but didn't give any info as to why .

> I did, and it's bad form to suggest otherwise.

If you say so. But... I said I think the features are good and you ask "why?"

I could relist the features, but that's a waste of time. As I said, I think the combination is a good combination. In a world where people try to encode loops in YAML or JSON, even small improvements are better and Dhall is a large improvement.

> I was asking about your personal opinion, since you said it was great but didn't give any info as to why.

I don't really get what you're asking. I said I think the combination of features is good. I don't need to describe the features. The reason I like them is probably related to neurochemistry?

Are you asking for a deep dive on how Dhall compares to alternatives?

Re: Dhall: A Non-Repetitive Alternative to YAML

#153
post #63

Earlier quoted context omitted.

One valuable point of Dhall is that it is programmable (yet not TC) in such a way to that you can e.g. describe a whole system entirely in Dhall and then (in Dhall!) derive whatever further configurations (plural!) you need from that. This is much more feasible than in e.g. YAML because Dhall is strongly typed. So you could describe e.g. a cluster of machines entirely in Dhall and derive Ansible YAML scripts (with al…

I mean, jq is a powerful programming language. Did you look at the link I posted?

Sure, I'm familiar with it. It's nothing compared to what Dhall can do.

... unless of course it's grown to a similar point. As of about a year ago, for some complex transformations I had to stitch together multiple invocations of jq using pipes, etc. etc. That may have been my inexperience with using it, though.

Regardless, the point about typing stands. Dhall uses structural typing/subtyping which turns out to be hugely useful for config transformation.

Re: Dhall: A Non-Repetitive Alternative to YAML

#154

Dhall is an awesome tool to have in your DevOps tool belt - we're heavy dhall users at meshcloud [0] and couldn't be happier about it. We picked it after evaluating a long list of contenders (yaml madness with anchors, jsonnet, ksonnet, j2/jinja, a hacked ejs compiler [1] and some more I forgot). It's so good we're looking into how we can give back/donate to the project. Dhall elegantly solves a major challenge: conf…

Heads up - Your naked subdomain redirect to www doesn't seem to be working. If I go to www directly, I don't get the timeout.

thanks! turns out it wasn't working for https, should be fixed now.

Re: Dhall: A Non-Repetitive Alternative to YAML

#155
post #72

Earlier quoted context omitted.

Recursion is fine, as long as an argument gets smaller at every iteration, since that guarantees termination.

Oh, like Ackermann function[0]? Because I wouldn't want my server try to evaluate that. [0] https://en.wikipedia.org/wiki/Ackermann_function

Since there are no side effects in Dhall you can always just impose an arbitrary timeout if you really want to.

IME, it's really rare to stumble upon pathological complexity like the Ackermann function. You basically have to go out of your way to do 'absurd' things.

(The point is of course taken, but personally I don't really care much about the TC-ness or otherwise of Dhall, though it is kind a nice-to-have to ensure that you don't accidentally introduce infinite loops.)

Re: Dhall: A Non-Repetitive Alternative to YAML

#156

Earlier quoted context omitted.

I mean, jq is a powerful programming language. Did you look at the link I posted?

Sure, I'm familiar with it. It's nothing compared to what Dhall can do. ... unless of course it's grown to a similar point. As of about a year ago, for some complex transformations I had to stitch together multiple invocations of jq using pipes, etc. etc. That may have been my inexperience with using it, though. Regardless, the point about typing stands. Dhall uses structural typing/subtyping which turns out to be hu…

I never have to "stitch together multiple invocations of jq using pipes". There was a time when I did have to, but that was years ago, and it now has the features needed to avoid that. Not sure what the point about typing was -- you can do the same derivation of data from a master entity with or without strong typing (though my preference is always for strong typing, which jq lacks).

Re: Dhall: A Non-Repetitive Alternative to YAML

#157

Earlier quoted context omitted.

On a practical level, C is an alternative to assembly because the appropriate black-box tools and combinations of tools allow the user to easily turn source code in either Language or a combination of both into an executable. Generating assembly from C is an implementation detail, and many C compilers don't do that. On the other hand, Dhall really is a YAML generator: the available tools allow only one-way conversion…

Dhall is also a JSON generator. And you could write your own Dhall implementation that lets you consume it directly from an application if you want to, it's just nobody's considered that worth doing.

Which is odd because tons of applications in the wild already have this amazing capability of directly consuming python and Haskell without first converting to yaml. But of cause you still have the ability to both produce and consume yaml if that’s needed for some reason.

Re: Dhall: A Non-Repetitive Alternative to YAML

#158

Earlier quoted context omitted.

> commas at the start of lines are not a requirement.

OTOH I would guess it doesn't allow a trailing comma (same problem as JSON...) so you end up with weird ugly formatting conventions

No, you can use trailing commas if you want.

Re: Dhall: A Non-Repetitive Alternative to YAML

#159

Earlier quoted context omitted.

Heads up - Your naked subdomain redirect to www doesn't seem to be working. If I go to www directly, I don't get the timeout.

thanks! turns out it wasn't working for https, should be fixed now.

working for me now as well

Re: Dhall: A Non-Repetitive Alternative to YAML

#160

Earlier quoted context omitted.

Sure, I'm familiar with it. It's nothing compared to what Dhall can do. ... unless of course it's grown to a similar point. As of about a year ago, for some complex transformations I had to stitch together multiple invocations of jq using pipes, etc. etc. That may have been my inexperience with using it, though. Regardless, the point about typing stands. Dhall uses structural typing/subtyping which turns out to be hu…

I never have to "stitch together multiple invocations of jq using pipes". There was a time when I did have to, but that was years ago, and it now has the features needed to avoid that. Not sure what the point about typing was -- you can do the same derivation of data from a master entity with or without strong typing (though my preference is always for strong typing, which jq lacks).

> you can do the same derivation of data from a master entity with or without strong typing (though my preference is always for strong typing, which jq lacks).

Yes, of course you can. The point is that the strong typing helps prevent inadvertent and hard-to-spot mistakes. In jq even simple typos of a field name can lead to "empty result set" silent failures instead of "what do you mean!" loud failures. That's a big thing.

Post reply on HN