Remix.run Logo
▲ Gravityloss 3 hours ago

This is partially a tangent, but the whole managing of software infrastructure is a strange culture. There would of course be lots of better ways, but it's too bad the infrastructure side of the software industry lives partially in a parallel world and many of the lessons from elsewhere in the industry are not really widespread there (at least yet). Even banks seem intelligent and innovative compared to infrastructure management mainstream practices.

It's very error prone to describe a hierarchy of versioned software packages and configuration with shell scripts and yaml. Or use text files in git as a database. Or use the CI system as a bad substitute for a proper service (in order to do a simple thing, you must first create the world from scratch). And so on. Mainstream industry knows types, programming languages, relational databases, graphs and you name it, but those have not yet penetrated sufficiently into the infrastructure world. The understanding of the value of having types has been paid in sweat and blood when developing software and databases. Even a basic CRUD application with a basic SQL database will run rings around these Frankenstein monsters: in safety, speed, and extendability.

▲outworlder 3 hours ago | parent [-]

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