Talks to Watch

Inspiring a future Clojure editor with forgotten Lisp UX - Shaun Lebron

23K views · Oct 12, 2017 · 35:32 · 0 HN recommenders · 3 mentions · discussed 2017–2019

Shaun Lebron surveys 50 years of Lisp editing history and forgotten innovations in structural editing. He argues future Clojure editors could learn from them, and covers ideas like Parinfer.

Why Hacker News points people here: HN cites it as a summary of known attempts at structural and Lisp editors.

“The ones I'm familiar with are summarized in this talk”HN comment, 2019

What Hacker News said 3

Cites itAriaMinaeiOct 2017

Related talk on future editors with forgotten Lisp UX.

Full comment

This is called 'projectional editing', an idea that to my knowledge goes back to the 60s. A projectional editor shows you both the original source code, and alternate representations (or, 'projections') of it. Given the right plugins and config, these alternate projections could happen to be more intuitive to grasp/edit than the original source code. One plugin could, for example, remove all the unnecessary semicolons. Another, could remove all the unnecessary punctuations and project the code in an indentation-significant way or vice-versa. Your idea to replace all the `'bar' + foo`s with ``bar{foo}``s would also be possible. It's easy to imagine much more advanced use-cases. A sufficiently advanced editor could detect calls to FRP libraries, and project the data flow as a visual graph (picture all the `flatMaps()` and `scanLatest()s` as nodes on that graph). Or, given access to compile-time type info (via a typescript-style language-server), it could overlay the type of a value with the missing fields being shown as slots to be filled. I can imagine such an editor to mostly "obsolete" the idea of a single syntax for each language in the first place. Like the language but not the syntax? Roll your own syntax! Just configure your own editor plugins. No one would have to know. No one would have to agree with your "taste." Not even your git repo [0]. (See /r/nosyntax/ for more ideas) A projectional editor can also be implemented in the runtime, ala Smalltalk. In that case, the

in “An experimental software development environment” · view on HN
Cites itcellularmitosisMar 2019

“The ones I'm familiar with are summarized in this talk”

Summarizes known attempts at structural editors.

Full comment

That's a great suggestion. Which attempts are you familiar with? The ones I'm familiar with are summarized in this talk: this video

in “Dreaming of a Parser Generator for Language Design” · view on HN
Cites itAlexSolutionOct 2019

“Using a Lisp with Parinfer makes the parens automagic”

Parinfer makes Lisp parens automatic.

Full comment

Using a Lisp with Parinfer makes the parens automagic without taking away the benefits they provide. link this video