3 ms·
I know the standard response is "why another one?" but honestly, his diagnosis of the existing options is pretty good. He even uses the best examples of thought
by habitue 3y ago
I know the standard response is "why another one?" but honestly, his diagnosis of the existing options is pretty good. He even uses the best examples of thoughtfully designed config languages: cue, dhall and nix, and ... yeah I pretty much agree with his qualms about those languages.
What is a config language really? It's a language that doesn't allow side effects and evaluates to json.
- skybrian 3y agoSure, it doesn't allow side effects, but what can it depend on? If a file defines a language that downloads a dependency from a URL, does that count? How about if it's automatically cached? Once you start getting dependencies from others, it seems like a configuration language could drift into package management.
- ianburrell 3y agoDownloading anything has side effects and can't be allowed by side effect free language. It is pretty rare that config language allow downloads. Downloading dependencies isn't usually done by config languages. Config languages generate a config, JSON or YAML, from source. The config file can be used by engine that applies the config including downloading dependencies.
- skybrian 3y agoXML isn't rare and it has URL's baked in. But yes, it's a bad idea.
- anileated 3y agoThinking inside the program, downloading dependencies certainly doesn’t need to have side effects. It may add new failure modes, that’s all. If you step outside then sure, it has side effects, but so does simply running the program (any program), in 100% of the cases.
- GoblinSlayer 3y agoDo you really want github actions have no side effects?
- spott 3y agoThe configuration language evaluates to YML that defines a GitHub action. The configuration language doesn't run GitHub actions.