3 ms·
It's really quite a nice config language -- I much prefer HCL to any of the alternatives. Has comments (unlike JSON), is properly nestable (unlike TOML), is ext
by zenlikethat 9y ago
It's really quite a nice config language -- I much prefer HCL to any of the alternatives. Has comments (unlike JSON), is properly nestable (unlike TOML), is extremely human readable and not too verbose, has a built-in pretty printer, etc.
I wasn't ever really a huge YAML fan. It's way too ambiguous and sensitive to whitespace. One erroneous space is way more likely to mess up your YAML file than your HCL file.
It's not perfect, but I actually would like to see MORE systems using HCL, not fewer.
- willtim 9y agoHCL is not used in the rest API though. So we have to integrate our apps using both HCL and JSON. It's also schemaless, which means we have to guess the API using various "samples".
- zenlikethat 9y agoWhich REST API?
- willtim 9y agohttps://www.consul.io/api/catalog.html https://www.consul.io/api/catalog.html
- daveroberts 9y agoHow is TOML not properly nestable?
- zenlikethat 9y agoBecause in TOML you just specify additional keys after the first one, leading to redundancy and representing a structure that's actually nested as flat. In TOML you can indent but it's not required: [[fruit]] name = "apple" [[fruit.physical]] color = "red" shape = "round" In HCL it's all just one (properly nested) object and you can `fmt` it: fruit { name = "apple" physical { color = "red" shape = "round" } } It seems arbitrary but really matters once you're nesting a few levels deep, which tends to happen in anything complex such as an orchestration system.