Skip to content
0:00 / 0:00

#clojure#lisp#parinfer

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

ClojureTV

111K subscribers • 158 videos on Hallway

YouTube
  • Recommended by 2 people: 1 on Lobsters and 1 in engineering communities.
  • Presented by Shaun Lebron

Intermediate. Assumes working knowledge.

23K views9 years ago2 recommendations

Programming languagesTools and practiceLisp and ClojureVim, Emacs and editorsLanguage design and type systems

Shaun Lebron explores fifty years of Lisp editing history and forgotten structural editing innovations to inspire better Clojure editor designs.

The first editor for Lisp turns 50 years old this year-a teletype editor that sported crude operations for navigating, restructuring and printing expressions. Today, a majority of Clojure users employ an emacs setup that has more or less existed since the 80s. But there is an interesting history of innovations around Lisp editing that has largely been forgotten. We will highlight the most interesting innovations from our research of this 50 year history, so that we may aspire to continue the search for better Lisp editing experiences. We will also postulate why these interesting innovations never took hold, and how these reasons have inspired an ongoing experimental but practical plugin for Atom called Locus, that works in concert with Parinfer to make Clojure not only dead-simple to write, but immediately pleasant to read.

Why it's here

2 people recommend this

What people say. Recommended as an insightful look into the history of structural editing and projectional editing paradigms in Lisp.

Moments people linked to

u/jiyinyiyongin r/Clojure • Recommends

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

inactive-useron Lobsters • Recommends

Inspiring a future Clojure editor with forgotten Lisp UX (2017)

AriaMinaeion Hacker News • Mentions

On “An experimental software development environment”

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…

cellularmitosison Hacker News • Mentions

On “Dreaming of a Parser Generator for Language Design”

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

AlexSolutionon Hacker News • Mentions

On “Show HN: Bel”

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

u/fjolnein r/Clojure • Mentions

On “Clojure/north: Composing Applications by Rafal Dittwald”

Shaun Lebron (author of Parinfer) worked on a related concept of structural representation of Lisp code. Unfortunately, it also never got to release. ~33:50 link to this video https://github.com/shaunlebron/locus/issues/1

u/andreyorstin r/Clojure • Mentions

On “New Clojurians: Ask Anything”

> as opposed to: > > (defn connect-right > board max-pos pos > (let [neighbor (inc pos) > destination (inc neighbor)] > (if-not (or (triangular? neighbor) (triangular? pos)) > (connect board max-pos pos neighbor destination) > board > ) > ) > ) here's a bunch of ways how to put parentheses that you'd might be interested in. But I suggest you to stick to the way it is proposed in the book, as it is the most common notation, and many lispers are quickly became very angry when they see C-like parentheses. Although Lisp is a free-form language, e.g. you can put anything anywhere, and as long as parentheses are put c…
2View on Reddit

u/swlkrV2in r/Clojure • Mentions

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

link to this video
1View on Reddit