Comment by poly2it

Comment by poly2it 18 hours ago

12 replies

The author of this language seems to have responded with AI-generated arguments in response to all questions linked in the FAQ section. This does not inspire much confidence for the design of the language.

Really, I do not see the point of this. These configuration languages are just different syntaxes for expressing the same fundamental data, bearing the same semantics. It would be much more interesting to see a language which experiments with what is fundamentally representable, for example like how the Nix language supports functional programming and has functions as a first-class data type.

LelouBil 10 hours ago

I started experimenting with Cue https://cuelang.org/ (for Kubernetes mostly, though I also used their tasks features) and it is wonderful!

If you squint it looks and works like a functional programming language, but instead of actually being one (like Dhall for example) it simply looks like configuration : keys and values.

The "types are values" and "values defined multiple times must unify" rules are really simple, and enable easy comprehension of what's happening and are powerful enough without it being a full blown programming language.

In a way it kinda reminds me of the TypeScript structural type system in the ways you manipulate types like values, which I like as well.

  • hbogert 9 hours ago

    It is truly wonderful. I do think they are missing a clear winner use-case so currently at our company colleagues don't see a clear benefit yet. Though if you take all use-cases where we use yaml or json now, and you'd get a pretty coherent way of working with config. But it's hard to phantom for non-coders and hard to communicate for coders why it's worth the effort for the non-coders.

hgs3 18 hours ago

> It would be much more interesting to see a language which experiments with what is fundamentally representable

You might checkout my project, Confetti [1]. I conceived of it as Unix configuration files with the flexibility of S-expressions. I think the examples page on the website shows interesting use cases. It doesn't have a formal execution model, however, for that you might checkout Tcl or Lua.

[1] https://confetti.hgs3.me/

  • cdaringe 13 hours ago

    Why is typeless a positive trait? Just due to the simplicity of the matter? What are the sharp edges?

    • hgs3 11 hours ago

      In practice, there are still types, they are just validated by your application. I didn’t want Confetti itself to make assumptions. I wanted to give you the freedom to define your own custom types and keywords, like “on” and “off”, or even tri-states like “yes”, “no”, “maybe”.

      The problem with mandatory keywords, like “true” and “false”, is they box you into the English language. And which data types should be intrinsic is arbitrary, for example, TOML has data types for date and time, but JSON does not [1]. Where do you draw the line? Confetti let’s you decide.

      You might enjoy reading this take on the subject [2].

      [1] https://toml.io/en/v1.0.0#offset-date-time

      [2] https://github.com/madmurphy/libconfini/wiki/An-INI-critique...

      • [removed] 10 hours ago
        [deleted]
      • ctenb 10 hours ago

        I don't see how predefined keywords are a bad thing. True/false is near universal

      • spookie 8 hours ago

        That makes a lot of sense to me. These files aren't just read by programmers either.

zzo38computer 18 hours ago

> These configuration languages are just different syntaxes for expressing the same fundamental data, bearing the same semantics.

This is my complaint too. However, they do add a proper integer type, which is the only thing that they do change with the data, as far as I can tell.

> It would be much more interesting to see a language which experiments with what is fundamentally representable

DER (and TER, which is a text format I made up to be compiled into DER (although TER is not really intended to be used directly in application programs); so TER does have comments, hexadecimal numeric literals, and other syntax features) does support many more data types, such as arbitrarily long integers, ASCII, ISO 2022, etc. My own extension to the format adds some additional types, such as a key/value list type and a TRON string type; the key/value list type is the only nonstandard ASN.1 type needed (together with a few of the standard ASN.1 types: sequence, real, UTF-8 string, null, boolean) to represent the same data as JSON does.

> for example like how the Nix language supports functional programming and has functions as a first-class data type.

For some applications this is useful and good but in others it is undesirable, I think.

sedatk 18 hours ago

> AI-generated arguments in response to all questions

There are currently two items in the FAQ. While the first one seems to be formatted with AI (I don't know if the arguments are AI generated though, how do you tell?), the other certainly doesn't look AI-generated: https://github.com/maml-dev/maml/issues/3#issuecomment-33559...

  • poly2it 18 hours ago

    The person who opened the issue specifically complained about getting an AI-generated reply before closing it. If you view the edit history for the message, or the language author's second response, you will see that the reply was edited afterhand to not be transparently sloppy.

    • ricardobeat 9 hours ago

      After the edit in the second question, it’s clear the author’s command of English is not that great, so they used AI as grammar correction.

      Unfortunately this is becoming more and more common, even here in HN; I don’t think non-english speakers doing this realize how obviously ChatGPT-ish the results are, and how much of its own “thoughts” it injects into the text.