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?
Dhall: A Non-Repetitive Alternative to YAML
151–160 of 181 posts
Re: Dhall: A Non-Repetitive Alternative to YAML
#152Earlier 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 .
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
#153Earlier 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?
... 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
#154Dhall 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.
Re: Dhall: A Non-Repetitive Alternative to YAML
#155Earlier 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
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
#156Earlier 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…
Re: Dhall: A Non-Repetitive Alternative to YAML
#157Earlier 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.
Re: Dhall: A Non-Repetitive Alternative to YAML
#158Re: Dhall: A Non-Repetitive Alternative to YAML
#159Re: Dhall: A Non-Repetitive Alternative to YAML
#160Earlier 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).
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.