4 ms·
I don't get the problem with using a turing complete language to generate configuration. There's nothing wrong with maintaining and refactoring a program, that'
by leg100 8y ago
I don't get the problem with using a turing complete language to generate configuration. There's nothing wrong with maintaining and refactoring a program, that's a natural process for any program. If you don't want an infinite loop, don't write one, as you wouldn't in any other program. You can choose as much or as little abstraction as you so wish.
Give me a real language any day over dhall or jsonnet.
- ithkuil 8y agoFWIW jsonnet is a "real" language. It's a dynamically typed, lazily evaluated purely functional programming language).
- leg100 8y agoFair enough. I should have said "general purpose language" rather than "real", which makes for flame-bait.
- ithkuil 8y agoI once built a mandelbrot fractal renderer which emitted a data-URL encoded PNG string to stdout in BCL (a spiritual predecessor of Jsonnet @ Google). Yeah, I know what you mean. It lacks generic input/output, you cannot read write arbitrary files and perform arbitrary network requests etc. I do like that restriction in the context of managing configuration systems, because it allows you to build hermetic evaluations. With kubecfg we added the ability to import from URLs, which I wish was available out of the box in jsonnet.
- Gabriel439 8y agoThis explains the disadvantages of using a general-purpose programming language as a configuration language: https://github.com/dhall-lang/dhall-lang/wiki/Safety-guarantees#effects https://github.com/dhall-lang/dhall-lang/wiki/Safety-guarant...