Hacker News new | past | comments | ask | show | jobs | submit login

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.




Sure, 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.


Downloading 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.


Thinking 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.


XML isn't rare and it has URL's baked in. But yes, it's a bad idea.


Do you really want github actions have no side effects?


The configuration language evaluates to YML that defines a GitHub action. The configuration language doesn't run GitHub actions.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: