• anton@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    1
    ·
    27 days ago

    It’s a bit of a change but certainly the right thing to do.

    My only disagreement with the article is the get/set stuff. I still want to keep something like the old container[index] syntax, maybe container.[index] to indicate that it’s a form of access. As long as generics go after names, this would not cause ambiguity.

      • anton@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        1
        ·
        24 days ago

        What’s a struct, but a tuple with some names?
        What’s computation but state and a transition function between states?
        What’s computation but a set of functions transformed by simple term rewriting?
        Let people enjoy their syntax sugar.

        • soc@programming.devOP
          link
          fedilink
          arrow-up
          1
          ·
          23 days ago

          Wasting a perfectly good pair of brackets on some random function call and then suffering for it in many other places sounds more like syntactic salt.

          • anton@lemmy.blahaj.zone
            link
            fedilink
            arrow-up
            1
            ·
            23 days ago

            What? I agree with function[T] style generics, and would be willing to change the access syntax to something like container.[index], as the dot makes the difference quite clear. Or do you mean the approach to implementing a container or the way the compiler has to transform it into the set operation/mutable access? I didn’t think that was such a problem, and I quite like the way it is done in rust, but that approach may be unavailable to many languages.

            • soc@programming.devOP
              link
              fedilink
              arrow-up
              1
              ·
              11 days ago

              That’s still a workaround to try and keep a completely artificial distinction alive.

              Even if I didn’t need [] for types, I still wouldn’t want “some functions use (), some functions use []” as a language rule.

              • anton@lemmy.blahaj.zone
                link
                fedilink
                arrow-up
                1
                ·
                9 days ago

                Some functions also don’t have any parentheses, like field access or infix operators.
                Who wants to write

                sqrt(p.x*p.x+p.y*p.y)
                

                when they could write

                sqrt(p.getX().square().add(p.getY().square()))
                

                or even

                sqrt(add(square(getX(p)), square(getX(p))))
                

                We could follow this line of thinking further and arrive at an ugly haskell-like language without pattern matching (because that is an artificial distinction between data in a record and data that can be derived from a record) or operators and barely more enjoyable to write that lambda calculus.

                • soc@programming.devOP
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  9 days ago

                  Some functions also don’t have any parentheses, like field access or infix operators.

                  You call things the way they were defined. Problem solved.

                  I’m kinda confused, because this is the second time now where your attempt at making a counter argument is actively supporting my point. Is this intentional at your part?

                  We could follow this line of thinking further …

                  No we don’t. If your point relies on Turing-tarpitting the whole discussion … then you have no point.

                  • anton@lemmy.blahaj.zone
                    link
                    fedilink
                    arrow-up
                    1
                    ·
                    9 days ago

                    You call things the way they were defined. Problem solved.

                    What?

                    I’m kinda confused, because this is the second time now where your attempt at making a counter argument is actively supporting my point. Is this intentional at your part?

                    We are ultimately arguing about subjective preferences. I favor of certain syntactic sugar because I believe it improves readability while you seem to be arguing for strict consistency above all else.
                    So by what metric are we measuring our points?

                    No we don’t. If your point relies on Turing-tarpitting the whole discussion … then you have no point.

                    I admit, that was hyperbolic, but I don’t see what syntax for data manipulation other than functions would be left in your ideal language.