1. 11
  1. 3

    Aren’t all languages that can be parsed inherently tree-based since there is always a defined transformation into a tree?

    1. 1

      It astonishes me how many people claim to care about lisps parenthesis. It really seems to be a trained knee jerk rejection as part of the culture, popularized and enshrined for the web generation of developers thanks to xkcd. Meanwhile it seems to make no sense!

      1. 1

        I think the parens would bother me a bit less if they were paired with sensible whitespace.

        1. 1

          I’m not sure what it is, either, but I’m one of those people. It may be that I learned C young enough that other styles are like learning a second language? But I feel like I can scan Python or ML family pretty easily, and I didn’t encounter those until college.

          I’m trying still, it may just take more effort, and more familiarity with good tooling. I wonder if there’s a correlation with those of us who use fairly basic text editors. At the same time I’m experimenting with graphical structure editors and paren-less syntaxes, because I suspect I could make it easier on myself. Some things may just be more work for some humans to parse, and there’s plenty of equivalent syntaxes.

          1. 2

            I use vim without syntax highlighting and I enjoy writing Clojure.

            My disdain was not aimed at those without sufficiently powerful workflows, but at those who write off a language because they’ll spend much more time with shift 9.

            1. 1

              Everyone has a limited lifespan and an essentially unlimited number of potential things to learn; it’s only natural that people develop dumb heuristics for disqualifying the vast majority of things based on surface-level appearance. If you learned enough about everything to make a non-surface-level judgement to find the best thing you would have no time to actually use the thing because you’d be spending it all gathering enough data to make the judgements.

              The only thing that’s surprising is that people pretend they’re making said judgements based on logic rather than knee-jerk reactions.

              It’s OK for knees to jerk in response to stimulous; they evolved that behavior for a reason.

          2. 1

            Your comment comes off as awfully arrogant and can easily be flipped around (“C-like syntax is just a trained knee jerk reaction …”). I like s-expressions because they’re easy to structurally manipulate when editing code, and once you get used to structural editing of programs, editing other kinds of syntax is cumbersome.

            1. 1

              C syntax is a trained comfort. That’s exactly my point.

              1. 3

                Ah! OK, my bad. I read your comment as complaining about people who like s-exprs, not the other way around.

            2. 1

              I have a lot of trouble reading lisps, and wonder (but am unsure) if it’s related to my dyslexia. If so, that would be a personally compelling argument against the parens!

              1. 4

                If it is dyslexia related, maybe using a Rainbow Parens plugin might help?

                I don’t have dyslexia, but using Rainbow parens in Neovim and Kate helped me read Janet much more easily, myself.

                1. 1

                  I don’t have dyslexia either, but for I have found that while they might be helpful early on, once you learn to read it, drawing attention to the parens is counterproductive. The parens exist in order to show the compiler what to do and to get the editor to indent the code correctly; you shouldn’t be paying attention to them while you’re reading or writing code. On my own system I have it set up so they fade into the background, and I read the code based on its indentation.

                  The one exception to this rule is if you pair program, it can be really useful to be able to say “add foo right after the purple paren on line 41”; that kind of thing is difficult to do with faded parens.

                2. 2

                  The developer of Wisp syntax suggests [1] it might be related to the phenomenon where the letters at the beginning and end are relatively more important in recognizing words (a form of the transposed letter effect). This is interesting but probably overstated: it seems unlikely to be reduced by whitespace after ( (though this would be interesting to test), and the transposed letter effect is not that strong.

                  [1] Why Wisp?, slide 4