23:15 video, "A Tour of Acme (2012)" by Russ Cox

80 views
Skip to first unread message

SegundoBob

unread,
Jul 9, 2020, 1:35:42 PM7/9/20
to leo-editor
https://research.swtch.com/acme

via Hacker-News-RSS


------
*** Wow! Acme implements many possibly useful ideas.  Maybe Acme is worth using on top of Leo-Editor.  Maybe some of Acme's ideas could be usefully implemented in Leo-Editor.  But probably the design is just too different from Leo-Editor and both approaches would introduce too much cognitive dissonance.

Wow! Russ Cox is an extremely skilled editor jockey.
---
SegundoBob

Matt Wilkie

unread,
Jul 10, 2020, 2:34:57 AM7/10/20
to leo-editor
wow. the linked Acme paper by Rob Pike is one for the permanent library, to be read and re-read. haven't watched the video yet, but now I have to! Published 1994 and I feel like I'm reading something from 2014 or 2024 (willfully stepping over some of the more obvious era-specific references).

wow.

-matt

Miles Fidelman

unread,
Jul 10, 2020, 8:03:17 AM7/10/20
to leo-e...@googlegroups.com

On 7/10/20 2:34 AM, Matt Wilkie wrote:

wow. the linked Acme paper by Rob Pike is one for the permanent library, to be read and re-read. haven't watched the video yet, but now I have to! Published 1994 and I feel like I'm reading something from 2014 or 2024 (willfully stepping over some of the more obvious era-specific references).

Surprised?  I mean, it sure seems like recent generations of developers just keep making the same old mistakes, and then ultimately reinventing the same stuff that folks did back in the day.  Not a profession that learns from the past.

Miles Fidelman



-- 
In theory, there is no difference between theory and practice.
In practice, there is.  .... Yogi Berra

Theory is when you know everything but nothing works. 
Practice is when everything works but no one knows why. 
In our lab, theory and practice are combined: 
nothing works and no one knows why.  ... unknown

Edward K. Ream

unread,
Jul 10, 2020, 10:56:33 AM7/10/20
to leo-editor
On Thursday, July 9, 2020 at 12:35:42 PM UTC-5, SegundoBob wrote:


I may have missed something truly interesting in this video. If so, please tell me exactly what it is.

Edward

Matt Wilkie

unread,
Jul 10, 2020, 12:01:48 PM7/10/20
to leo-editor
wow. the linked Acme paper by Rob Pike is one for the permanent library, to be read and re-read. haven't watched the video yet, but now I have to! Published 1994 and I feel like I'm reading something from 2014 or 2024 (willfully stepping over some of the more obvious era-specific references).

Surprised?  I mean, it sure seems like recent generations of developers just keep making the same old mistakes, and then ultimately reinventing the same stuff that folks did back in the day.  Not a profession that learns from the past.


Surprised? Well yes, as evidenced by the 'wow's, and no, as this is one more in  a number of historic things still not evident in today's world. Today being a moving lens, some things in focus and most others not. I started my computing experience circa 1992. There are things from then absent now that I still miss regularly. But back to the why 'wow' here: it's some of the interaction concepts which are completely new to me.

Edward said "I may have missed something truly interesting in this video. If so, please tell me exactly what it is."

For me the video was rewarding after reading the acme paper [https://research.swtch.com/acme.pdf]. (Generally I find watching videos of other people driving a computer painful.) I think the two are best together and not in isolation.

Specific things that made me sit up and pay attention:

Middle click: whatever is selected are the command(s) to execute. It's akin to Leo's Ctrl-B execute script command but powered up so that it works everywhere, not just the body pane.

Right click is search for 'selected text', but how the search happens is context aware. If it's a path and the file exists, open it. If selection is a filename and a line number, open to that line. If  selection doesn't exist search for it generally. (Presumably across all open documents. Or something. There's more here that I didn't catch.)

Acme as a file system command object: `path/to/acme` is the program. `path/to/acme/copy ...` is conceptually akin to running `acme --copy {parameters}`. I imagine clones-find-all-flattened being called like `/bin/leo/cff {search pattern}`. The caller could be just an interactive command shell prompt or a program like vscode.

Output of commands/programs get their own panels in Acme automatically. (Flipping between Leo's log pane and shell console to catch messages is a constant low grade friction. Foreseeing ahead of time I need to declare print() or g.es() for process x  instead of just "gimme everything that happens" is mental work I consistently fail at.)

There's something about how the Undo/Redo stack is implemented that seems ingenious and stable. Admittedly this part is outside my ken; I'm a user and not much of a developer.

The constrained yet flexible window layout is intriguing. It appears very easy to arrange and manipulate dynamically as one works.

There are many more subtleties I can sense just beyond my grasp. There's only so far one can go in understanding without trying it, obviously. Like Leo and tree organization, external files, and clones.

-matt

Félix

unread,
Jul 10, 2020, 12:09:50 PM7/10/20
to leo-editor
This is interesting to me because I just got aware of the (relative) importance of seeing the print output as much as the g.es output, which I'm trying to implement in an elegant way, ...among other things the acme editor does.

Thanks for exposing me to this. I realize its importance now.

Felix

Edward K. Ream

unread,
Jul 11, 2020, 6:13:17 AM7/11/20
to leo-editor
On Friday, July 10, 2020 at 9:56:33 AM UTC-5, Edward K. Ream wrote:

>> https://research.swtch.com/acme

> I may have missed something truly interesting in this video. If so, please tell me exactly what it is.

To answer my own question, there is a lot less to acme than meets the eye, as I shall now explain...

Windows

Acme windows are a clumsy representation of Leo nodes. They have a headline and body text. They can be arranged, but not organized. There are no clones, though there may be file links.

Acme windows can be considered a file system using FUSE. The same is true of Leo, as Kent pointed out 12 years ago! Leo as a file system is one of my permanent bookmarks :-)

Commands

Let us imaging three Leo commands corresponding to acme's right/middle/left clicks and bound, say, to Ctrl-1, Ctrl-2, Ctrl3. We can define these commands with @button nodes or @command nodes. These commands can, among other things, call g.execute_shell_commands. There is nothing new here.

We could also define these three commands via Leo's abbreviations, which, as you will recall, can execute arbitrary Leonine scripts.

The wisdom of the crowd

A lot has happened in 40 years. Specifically, ide and other programming tools are far more powerful and useful than they once were. There is much less reason to rely on nerdy hacks to get common tasks done.

vs code shows the power of millions of people contributing to a customizable code base. Imo, we can assume that any useful trick found in acme will already have found its way into vs code.

Blind spots

The drawback to "the wisdom of the crowd" may, sometimes, be blind spots. An example is the scientific community's shameful treatment of Hugh Everett, the young man proposed the many worlds interpretation of quantum mechanics.

In programming, one possible a blind spot might be the lack of interest in Smalltalk/Pharo. The programming model just doesn't fit into our world view very well. Happily, there are Smalltalk plugins for vs code. Googling "vs code pharo" yields several interesting discussions.

Summary

Imo, Leo and vs code provide everything found in acme. Leo plus vs code is the wave of the future :-)

Edward

Edward K. Ream

unread,
Jul 11, 2020, 6:53:18 AM7/11/20
to leo-editor
On Saturday, July 11, 2020 at 5:13:17 AM UTC-5, Edward K. Ream wrote:

vs code shows the power of millions of people contributing to a customizable code base. Imo, we can assume that any useful trick found in acme will already have found its way into vs code.

Heh. There is an Acmeish plugin for vs code, so perhaps we can say this discussion is moot.

Edward

Edward K. Ream

unread,
Jul 11, 2020, 7:56:21 AM7/11/20
to leo-editor


On Saturday, July 11, 2020 at 5:53:18 AM UTC-5, Edward K. Ream wrote:

Heh. There is an Acmeish plugin for vs code, so perhaps we can say this discussion is moot.

There are also many live-coding plugins for vs code:

- Live Coder (for python)
- Live-p5 (for p5)

etc. etc.

Note to myself. When looking for what's new in the programming world, check vs code's extensions as well as googling.

Edward

Offray Vladimir Luna Cárdenas

unread,
Jul 11, 2020, 6:24:38 PM7/11/20
to leo-e...@googlegroups.com

Thanks for this Matt detailed recap (I'm seeing the video right now and mark the paper as pending).

Seems pretty interesting, as I have a soft spot for digital artifacts archeology. Pharo/Smalltalk has been making any selected text executable since 70's. Also the idea of maximazed windows/panes intrigues me, as I'm using now the Awesome tiling window manager and I feel it more productive/ergonomic that dealing with my windows manually.

Leo present me years ago with "ideas from the margin" about what computation could be and one of the greatest values of this community is how it puts several of such idea into dialog. I think, as other[1] that design innovation comes from the margins and not big centralized efforts.

[1] https://design-justice.pubpub.org/

Cheers,

Offray

--
You received this message because you are subscribed to the Google Groups "leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/54d785aa-ee95-4915-af59-6334684fa5e0o%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages