3 ms·
There’s no smooth gradient between data format and Turing complete programming language. Let’s say I want environment conditional logic (such as looking up a ma
by catlifeonmars 3y ago
There’s no smooth gradient between data format and Turing complete programming language. Let’s say I want environment conditional logic (such as looking up a map of AMIs to AWS regions), but don’t want to allow arbitrary code execution, or I want to embed the parser inside the service that accepts the config. Those are the niches that HCLs fill.
A programming language that allows you to enable language constructs individually might be interesting (imagine being able to easily turn on list comprehensions but not allow imports or to disable mutation).
- patrickmay 3y ago> There’s no smooth gradient between data format and Turing complete programming language. S-expressions beg to differ.
- catlifeonmars 3y agoFunny you should mention that, I implemented an S-expression based language spelled using JSON for a dynamic configuration use case. It was actually not terrible for a day or two of work, but it was a far cry from a general purpose production grade configuration language due to lack of tooling, intellisense, and a small stdlib. Also, many people found the syntax foreign and confusing; not a deal breaker but just another hurdle. FWIW I agree with you, but driving adoption would be hard.