You are viewing archived messages.
Go here to search the history.

Ivan Reese 2025-11-06 16:09:26

What are the all-time great projectional / structure editors? I'm particularly interested in:

  • tight focus on a specific language
  • really good autocomplete / hinting (ie: type-aware, don't show me unhelpful stuff at all)
  • pulling far away from the feel/experience of raw text typing, pushing toward "press a button, out comes exactly the program you wanted"
Konrad Hinsen 2025-11-07 07:15:23

Emacs with paredit for Lisp satisfies the first two points. And it's actually in use by lots of people.

Marek Rogalski 2025-11-07 15:36:50

The "all-time" makes me think of Visual Basic. It was theoretically superseded by C# (WinForms, then WPF) but along that way it lost something essential.

image.png

Jack Rusher 2025-11-07 16:54:46

Editing on the various Lisp machines was quite good, but not very “modern”

Jack Rusher 2025-11-07 16:55:50

The experience of older Msalltalk environments was very good, but not as automated as you seem to seek (the machines were weak 🤷‍♂️)

Paul Tarvydas 2025-11-07 22:59:28

Hmm, the 3rd requirement makes me think of Barliman but doesn't directly fit with the wording of the question. IMO, Lisp is the LCD for projectional editing. If you can ask an app to generate some Lisp (Scheme) code, then you're most of the way there - you just need to transmogrify the Lisp code into some other syntactic form (see OhmJS, t2t, etc. :-).

Beni Cherniavsky-Paskin 2025-11-09 08:32:50

(3) Scratch (and clones - i love Snap! the language, but EX is same) deserves a mention for being demonstrably easy for beginners (incl. beginners taught by beginners :) and good with touch.

I'd say the editing experience is low-floor, mid-ceiling at best? There are not many power-user editing moves...

(1) Things like costumes have a tight focus e.g. direct lo-fi painting.

OTOH tasks like "create 10 sprites" and "cut&paste between sprites" are hard, and feel more like "ad-hoc GUI" than a unified editor , imho a weakness . E.g. I dont think you can move a costume to another sprite, only delete and re-create?

(2) Builtin library of images & sounds + default values in many places (instead of prompting) all help unlock creativity 👍

(2) Some hinting via dropdowns, shapes (boolean = hexagonal etc.,), not very strong. But the language is designed to be very forgiving, closer to Lisp / Perl not Rust / ML.

IMHO part of its success was inverting (1): designing the language to fit the editor, not the other way around!

  • stdlib sized to discoverably fit in reasonable ~10 palettes.
  • Forgiving (few errors, at worst error balloon but keeps running) to encourage click-to-execute experimentation. Can even execute inside the palette!
  • Persistent image: contually running, no state-losing "restart". Green flag convention to code your own initialization. This semantics (A) relives beginners of need to understand process lifetime 💡 (B) blurs the line between programatic actions and editing. E.g. I can directly drag a sprite to where I want it to be, or I can execute a "set opacity 50%" block - and both are on equal footing. => Many properties have no other GUI, the blocks palette doubles as an editing menu!
  • Block names freely mixing parameters amid text. [compare:Smalltalk or:ObjC names]
  • Snap! custom blocks have macro-like powers do mimic any block shape, incl. control structures. Also some affordances to add help tooltip and param type hints & defaults. This is great didactic tool for a teacher to add lesson-specific scaffolding.
  • Concurrent execution semantics match greatly with free-floating code chains with separate on- event trigger "hats" :smiling_face_with_3_hearts: . Plus, per-sprite implicit "self" takes advantage of intuitive "visual OOP" to make accessible some concurrent programming that would be genuinely mentally hard in textual languages. This is IMHO scratch's deepest achievement.
Beni Cherniavsky-Paskin 2025-11-09 09:33:12

(after answering noticed the OP, who's no stanger to editor-wagging-the-language. here's to more HEST episodes 😉🙏 )

Josh Bleecher Snyder 2025-11-06 16:17:50

An esolang idea that might (?) be fun to kick around.

The idea is to take advantage of the fact that LLMs are somewhat resilient in their inputs (can ignore typos, infer intent, etc.) to have a multi-level language.

Here’s a sketch, but I’m not wedded to any of it:

Programs are UTF-8. Each input code point is interpreted as an opcode. (Many opcodes are no-ops, probably most non-ASCII code points.) Some opcode(s) cause LLM execution of the program text.

The fun is writing a program whose opcodes do something useful, while still being natural-language-interpretable enough to use the second-level interpretation of the language as well.

(For the no-LLMs crowd, a similar idea is to have a pixel-based programming language…but the input is always pixels from rendering a textual program. Then you can execute either the pixels, or the text from which the pixels result, and bounce between the two.)

Ivan Reese 2025-11-08 16:28:57

[deleting a post by @Marek Rogalski and reposting with added a description — I want to discourage posting naked URLs without context and relying on the generated preview]

On Mastodon, @Marek Rogalski shared the following discussion prompt:

[at 32m in the talk Hackover 2025 - Patterns in Chaos: How Data Visualisation Helps To See the Invisible, ** the speaker yote]…

brings up an interesting thought re readable visual design - that visualizations should encode the important variables using features that we've evolved to recognize instantly - on the most primitive level. The example given is rather simple: large vs small... But if we pull this a little further, it might lead us to some interesting, totally not explored visualizations:

  • using familiar vs unfamiliar faces as data points

  • using movement (especially movement of complex foreground against complex background) to highlight key area

  • proximity (stereoscopic images) - this could be combined with movement, so that important points move back & forth

  • we're really good at predicting trajectories of thrown objects - can this be utilized somehow?

Ivan Reese 2025-11-08 16:39:16

I don't have much to add here, but I love the idea of using qualitative, detailed images (like faces) in place of more abstract quantitative forms (colored shapes) in datavis.

Vitorio Miliano 2025-11-08 22:15:04

Schooloscope (c. 2010) used Chernoff faces to convey high-level data.

It's a super underexplored area, especially when you move into 3D. Most visualizations in 3D you see are just extruded 2D ones, instead of digging into e.g. visual perception research to come up with methods that use more of our capabilities, like Understanding how people group information over time: A new technique – Llewyn Paine, Ph.D. | Strategic customer research which studying visual grouping in the time domain, and discovered that shadows offered stronger perceptual grouping clues than overlaps alone.

📝 Understanding how people group information over time: A new technique

The following is a UX-friendly summary of Paine, L., & Gilden, D. (2013). A class of temporal boundaries derived by quantifying the sense of separation. Journal of Experimental Psychology: Huma…