Remix.run Logo
▲ outworlder 3 hours ago

> It's very error prone to describe a hierarchy of versioned software packages and configuration with shell scripts and yaml.

We have a multitude of configuration/markup languages all doing the exact same thing.

We have solved this problem in the 60s: S-Expressions. Should have just used that for everything. Configuration, code, websites, you name it. Infinitely extendable, easy to parse.

▲devin 3 hours ago | parent [-]

I'm a lisp nerd, but why do you say sexps are the answer here? I think the point of a lot of configuration formats is that they don't want their configuration to also be a full-fledged programming language.

▲majormajor 2 hours ago | parent | next [-]

> I think the point of a lot of configuration formats is that they don't want their configuration to also be a full-fledged programming language.

That seems to be everyone's initial goal, but then it inevitably gets leaky.

I think the dominant split here that forces everything into a weird mismash is that nobody really wants to have to understand arbitrary programming language configs for third-party stuff, they want to read config and know what's going on. BUT for their own stuff, they find reasons to want more power and expressibility...

▲gustavus 2 hours ago | parent | prev [-]

> they don't want their configuration to also be a full-fledged programming language.

They say they don't want it but every configurmation format eventually ends up becoming turing complete at some point.

▲ianburrell 20 minutes ago | parent [-]

There has been some config languages, like Cue, that are not Turing complete. It is useful of have them always complete and have deterministic evaluation.

Cue also has a lot of schema validation which is better than dynamic languages.