3 ms·
Here's my recent comment about sdlang: https://news.ycombinator.com/item?id=24945449 https://news.ycombinator.com/item?id=24945449 So I think Oil will be very
by chubot 6y ago
Here's my recent comment about sdlang:
https://news.ycombinator.com/item?id=24945449 https://news.ycombinator.com/item?id=24945449
So I think Oil will be very familiar to SDLang users, BUT it has programmability, which you need in cluster configuration and build configuration, e.g. to express duplication.
So I would divide the space into a few categories:
(1) Stringly typed: .ini, YAML
(2) Typed Data: JSON, XML to some extent, SDLang
(3) Programmable configuration: HCL, Cue, Jsonnet, Nix expressions, BCL, Starlark, Oil
SDLang looks really similar to HCL too, except HCL is programmable:
https://www.terraform.io/docs/configuration/expressions/dynamic-blocks.html https://www.terraform.io/docs/configuration/expressions/dyna...
Very important: With categories 1 and 2, people add template languages like Go templates on top to solve the programmability problem, which we don't want!!! We don't want to move typed data back to the stringly typed realm!
Also, I don't think the "expression style" of HCL, Nix, and BCL is great. It's good for small things, but it starts to get hard to read for large configs. I'd prefer simple for loops and if statements, basically like the Starlark language (a subset of Python used in Bazel).
---
Thanks for the paper reference, I bookmarked it!