← Back to context

Comment by rscho

11 days ago

I run emacs, so I messed around with paredit and friends.

I can understand your pov as a professional coder, doing enough coding that you can really master the syntax of your language of choice. I code occasionally for scientific research, and the less syntax I have to remember, the better. Little syntactic constraint in combination with structural editing really is a killer feature in my context.

paredit is what I think of as a half-structural editor. It gives you some structural shortcuts, but the cursor is still on a character instead of on a node, IIRC. My bet (that I've spent a lot of time building an editor for) is that the big gains will come when the cursor is never on text, always on an AST node.

> the less syntax I have to remember, the better

Part of my point is that parenthetical languages don't actually have that much less syntax. You have to remember one of these two syntaxes:

    let x = 1;
    let y = 2;
    do_stuff

    (let
      ((x 1)
       (y 2))
     do_stuff)

Now you say that there's a lot more possible variation in the first case; it could be:

    let x = 1; # Rust
    var x = 1; # JS
    x=1 # bash

And I point out that there's a lot of possible variation in the second case too:

    (define x 1) (define x 2) do_stuff
    (let (x 1) (y 2) do_stuff)
    (let x 1 (let y 2 do_stuff))

There is less syntax with parens. But it's not zero syntax, and you still need to memorize it.