Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Everyone is entitled to scratch their own itch, but this seems like the most useless configuration language I've ever seen.

Take the "fixed point" example, where you have a boolean setting which one file says should should be "yes" and the other says it should be "no" and the language semantics composes that into a list with both values. For what boolean setting does this make sense?

The article says "Overrides are not a problem because you keep both values. And you can decide what to do with them: keep only the first, keep only the last or use some smart logic to combine both of them. You’re the boss."

If you need custom logic in your application determine the setting to use, how is this language helping you?



I think this is probably the best place within these comments to note that one thing some people expect of a configuration format is to be able to hide information from the consuming piece of software.

Normally, it is often useful for a program to receive all the configuration from all sources. ("This flag is normally set to TRUE, has been set to FALSE on this system, has been set to TRUE by the user, and now there's an environment variable that says one thing and a command line flag that says something else.") Sometimes, integrating several incoherent settings into one is dependent on its consumer, or even the setting itself. Sometimes, you would like to be able to debug how different settings interact with one another. Sometimes, different settings can be merged without issue.

CCL exposes everything to the program receiving the config, which is something (some) people seem to abhor. I can see how wanting to hide information can be both useful and detrimental, so I'm wondering if this issue is actually orthogonal to configuration languages, meaning CCL, and others, shouldn't even concern themselves with it.


Reading this I think of all the programming languages that comments with whole languages inside of them. That is beyond the complex documentation I found.


you apply another monoid operation.

one possible one is to return first or last element. makes sense in layered configuration of, for example, a text editor, where you might override a colour.

another possible one is to return error on duplicate. makes sense in flat configuration of, for example, a build system.

your application knows which operation fits its intended structure. your application documents the behaviour, just as it normally would.




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

Search: