HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

(ninth RacketCon): Andrew Blinn – Fructure: A Structured Editing Engine in Racket

Racket2 HN recommenders · recommended in 1 month, 2019-2021
YouTube
10K views · 7 years ago · talk · evergreen

A RacketCon talk presenting Fructure, a prototype extensible structured editing engine in Racket. Language providers define syntactic forms and refactorings as rewrite rules, and editing operates on program structure rather than on text.

Cited as a leading example of structural editing whenever threads discuss alternatives to text-based code editors.

Testing, debugging & developer toolsFunctional programmingProgramming language design#racket#structureeditor#termrewriting#programmingtools#racketcon

7 comments from Hacker News

@disconcision2021 · in “Snap is Scheme disguised as Scratch [pdf]”

using a lisp here simplifies things from implementation and interaction model perspectives. you already have a simple, canonical AST out of the box, which in-principle suffices to support the entire language, not just a toy version. so it makes sense lisps are attractive targets for getting something rolling in this space, though it's certainly debatable whether it's long-term the best choice. (my own efforts in this space (a structured editor in racket), which i was able to get going as a novice programmer: ▶ this video )

CitesView on HN
@loosetypes2020 · in “Hazel: A live functional programming environment featuring typed holes”

For folks interested in this sort of thing, Andrew Blinn gave a neat talk[1] pertaining to structured editing at Racketcon, which credits Cyrus’ work with Hazel. [1] ▶ this video

RecommendsView on HN
@disposedtrolley2020 · in “MicroBlocks: Scratch and Smalltalk-inspired MCU VM for live embedded programming”

I've seen a few attempts at "structure editors" which are keyboard driven but limit what you can type so it's always syntactically correct. Fructure is an example which looked promising! ▶ this video

RecommendsView on HN
@spaethnl2020 · in “Simula: A VR window manager for Linux”

I'm not sure I agree with the parent, but to give an example for a non-rectangular UI for manipulating (programming) text: Combine structural editing[1] overlaid on some kind of 3d graph that shows how your entire codebase fits together. [1] ▶ this video

CitesView on HN
@threatofrain2019 · in “Lisp Programming in Vim with Slimv or Vlime”

In my mind the main reason why Vim still has relevance today is for seat-of-your-pants SSH'ing, which admittedly shouldn't be done but it still is. Outside of that... I still have hope for structural editing but I don't see Vim as the innovator in that space anymore. ▶ this video

CitesView on HN
@TuringTest2019 · in “How can we develop transformative tools for thought?”

> I still think excel is the leader in this category. Yes, definitely. The "reactive functional" programming paradigm of the spreadsheet is radically more understandable for end users than the imperative, as it doesn't require keeping a mental model of state changes in memory. Fortunately, React has popularized this reactive functional paradigm and it is no longer confined to spreadsheets. > I’m thinking the same elements presented in an environment perhaps more like Scratch could work An approach of visual building blocks could help for learning, though Scratch is imperative so it has all the trappings that make a language hard to learn for non-programmers, plus all the inconveniences of editing a visual language (much more cumbersome than editing text). I'd rather have a "structure editor"[1] for editing a textual language (like the spreadsheet, but with a tree representation instead of a grid one), which added enhanced visual representations over the base tree. You know, like the IDEs developers use, but with a functional reactive language that mixed code and data, like the spreadsheet does. [1] ▶ this video

CitesView on HN
@disconcision2019 · in “How can we develop transformative tools for thought?”

I'm currently working on a structured editor which is at its core a customizable rewriting engine; you specify a grammar, and essentially all editor actions are rewrites on that grammar. My current target grammars are for simple LISPy languages because of the simplicity, but my original (and eventual) goal was/is as a tool for exploratory mathematics. I've always felt mathematical manipulation as more of tactile, synesthetic phenomena than a verbal/linguistic one; I feel like the current state of haptic input is not quite up to reifying this yet, though it is improving very rapidly these days! So I'm trying to tackle some of the software side, and seeing what can be done towards this goal with extant input devices. What I've done is pretty rudimentary so far, but I have a talk about it here if anyone is interested: ▶ this video

CitesView on HN
Emacs Rocks! Episode 14: Paredit3:25

Emacs Rocks! Episode 14: Paredit

emacsrocks
65K views • 13 years ago
Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore8:45

Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore

Leandro Facchinetti
19K views • 5 years ago
Inspiring a future Clojure editor with forgotten Lisp UX - Shaun Lebron35:32

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

ClojureTV
23K views • 9 years ago
Lisp Editing in the 80s - Interlisp SEdit4:54

Lisp Editing in the 80s - Interlisp SEdit

thoughtupquick
9K views • 9 years ago
RacketCon 2013: Dan Liebgold - Racket on the Playstation 3? It's Not What you Think!59:24

RacketCon 2013: Dan Liebgold - Racket on the Playstation 3? It's Not What you Think!

Racket
19K views • 13 years ago
Domain Modeling Made Functional - Scott Wlaschin51:40

Domain Modeling Made Functional - Scott Wlaschin

NDC Conferences
71K views • 9 years ago
Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure53:56

Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure

jasonofthel33t
119K views • 13 years ago
Stuart Sierra - Components Just Enough Structure41:19

Stuart Sierra - Components Just Enough Structure

ClojureTV
36K views • 12 years ago
RustConf 2016 - A Modern Editor Built in Rust by Raph Levien36:16

RustConf 2016 - A Modern Editor Built in Rust by Raph Levien

Confreaks
43K views • 10 years ago
Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 201950:49

Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019

KanDDDinsky
74K views • 6 years ago
Effective Programs - 10 Years of Clojure - Rich Hickey1:14:52

Effective Programs - 10 Years of Clojure - Rich Hickey

ClojureTV
176K views • 9 years ago
Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt36:14

Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt

ClojureTV
8K views • 9 years ago
Brian Goetz - Stewardship: the Sobering Parts1:03:31

Brian Goetz - Stewardship: the Sobering Parts

ClojureTV
39K views • 11 years ago
The Next Five Years of ClojureScript - David Nolen1:00:58

The Next Five Years of ClojureScript - David Nolen

Metosin
19K views • 10 years ago
Over the Shoulder 1 - Text Preprocessing in Forth1:06:26

Over the Shoulder 1 - Text Preprocessing in Forth

Andreas Wagner
25K views • 12 years ago
The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]1:29:27

The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]

cpponsea
245K views • 7 years ago
Stanford Seminar - Concatenative Programming: From Ivory to Metal1:04:45

Stanford Seminar - Concatenative Programming: From Ivory to Metal

Stanford Online
14K views • 8 years ago
The Functional Programmer's Toolkit - Scott Wlaschin1:05:51

The Functional Programmer's Toolkit - Scott Wlaschin

NDC Conferences
79K views • 7 years ago
Effective ML1:09:24

Effective ML

Jane Street
30K views • 10 years ago
Live ClojureScript Game Editor5:27

Live ClojureScript Game Editor

ibdknox
34K views • 14 years ago