Chiming in to say Ron hits the nail on the head here: Plan 9 can take a
very pure approach to the Unix design philosophy, of composable,
reusable, programs that do one thing well, because it gets a lot of
fundamentals right (looking at namespaces).
Emacs has its own lisp because its original host OSes got those
fundamentals wrong. Processes have much less control over their own
environments on other Unix-likes. It's much harder to throw up a file
server and have it Just Work™.
On Plan 9, emacs could expose its editor state as a 9P server, and let
other programs, written in *whatever*, do the heavy lifting. The program
and the overall system both shrink, reducing complexity and the
cognitive burden of the system as a whole.
And hey, that's exactly what Acme does.
/begin tangential rant, on getting fundamentals wrong
I'm of the belief that the widget-oriented GUIs most people use comprise
a severe misfeature. They encourage immutable and compiled-in
functionality which, in turn, beget bespoke scripting and plugins to get
around the resulting limitations. Code and system complexity then
increase, weighing the mind down and fragmenting development ecosystems.
I reckon the volume of characters made available by Unicode is vast
enough, and Plan 9's plumbing and namespacing are versatile enough, that
complex graphical shells can be based purely upon text buffers. Users
could then write their own interfaces, suited to their needs.
One piece of Plan 9 orthodoxy holds this back: centralisation of the
plumber. There is no trivial way of determining the optimal ordering of
context-specific rules in a single plumbing file, nor a way of
communicating that context without introducing additional conventions
that *all* programs that plumb must obey.
A centralised plumber is, as a result, a fragile plumber. Different
contexts should have different plumbers.
/end tangential rant
- Willow
On 09/08/2025 23:08, ron minnich wrote:
Just a reminder, if you get too stuck in an emacs frame of mind, you're
really going to miss the full power of acme specifically, and plan 9 in
general.
Back in my LANL days, I had a need to edit around 30 assembly files all
at once, to change a common thing. It was not going to be fun with sed.
So I:
acme *.s
and in the top bar, do something like this:
Edit X/*.s/,s/blah bla/blue lue/g # memory is almost certainly wrong here.
But it let me do a sequence of commands, across all those assembly
files, and see the results on them instantly, as well as undo anything
wrong.
If I needed, part of that could include piping all the files through a
command line and replacing what was there.
And it was fast. And it was visual. I could see it all happen with no
apparent delay.
It's not that acme does less. It does things on an orthogonal axis to
emacs. In emacs, to get more capabilities, people tend to resort to
lisp. In acme, to get more capabilities, people resort to building tool
pipelines that *they can also use outside acme*. To me, that's very
important. Emacs solutions typically only work in emacs (true for vim
and zed and on and on ...) whereas acme can be a way to prototype things
that can be used outside acme.
That's kind of plan 9 (to me) in a nutshell: not special purpose
solutions for single tools, but solutions that work across a wide range
of tools.
On Sat, Aug 9, 2025 at 12:53 AM <[email protected]
<mailto:[email protected]>> wrote:
On Fri, Aug 08, 2025 at 10:53:31PM -0600, Dworkin Muller wrote:
> On Fri, 8 Aug 2025 15:15:50 +0200, <[email protected]
<mailto:[email protected]>> wrote:
> tlaronde> "panels" of a main window). [Am I not re-inventing Acme?]
>
> Which brings to mind something that's been niggling at me for a
while.
> There seems to be a bit of a bias against all-singing, all-dancing
> editors (cf emacs(1) and the lack of any variant of emacs in the
> various Plan 9 distributions). On the other hand, acme's an editor,
> and it's used to read mail. In other words, from the user's
> perspective, the exact same functionality is present in acme as in
> emacs - I can write macros, I can read mail, and I can edit files. I
> can even run a process under either of them interactively or simply
> for the output, with the results in an editing buffer. I can visit a
> directory in either, etc (these are, in fact, exactly what I use
emacs
> for in my usual environments).
>
> So, the ability to do lots of things via the editor per se does not
> appear to be the problem. Even having a fair amount of built-in
> capability seems acceptable. Rather, the objection appears to be
that
> emacs does everything itself, instead of providing some degree of
> internal abilities plus an interface to let other programs use it
> simply as a user-interaction medium (essentially, the textual
> equivalent of rio). Have I got that right? We'll ignore GNU emacs'
> client/server feature for the moment, of course.
>
> I'm just trying to figure out where the boundaries are for what's
> considered reasonable for base Plan 9 programs, as opposed to things
> that compose new abilities on top of that base.
>
Concerning the "frame of mind", I'm exactly in the same one: when it
comes to software and a system, I want a mathematical partition: code
that does not overlap and that covers the whole need but keeping it a
whole i.e. a unit because the pieces can be combined to work together.
Indeed, when there is an interface that is not line limited, why try
to put pieces of editing capabilities in the window from which one
tries to send commands, and not an editor running in a panel dedicated
for commands (this gives the immediate possibility too to have the
equivalent of the Unix script(1): simply save your editing session),
with the output sent in another read-only panel, while "comments"
(stderr) appear in another one?
This way of organizing the interface being, contrary to emacs, simply
a way of letting external utilities use some panel and being able to
combine their results.
Emacs makes sense as the way to have full editing capabilities to also
edit commands. But I think also that it duplicates too much, and that
such an interface could be just a graphical 2D way of combining other
utilities and organizing their output.
I do think that this is totally in the Plan9 spirit and that when it
comes
to the GUI, things can be reworked and in fact simplified.
--
Thierry Laronde <tlaronde +AT+ kergis +dot+ com>
http://www.kergis.com/ <http://www.kergis.com/>
http://kertex.kergis.com/ <http://kertex.kergis.com/>
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
------------------------------------------
9fans: 9fans
Permalink: https://9fans.topicbox.com/groups/9fans/
T9209adeaba1b3a8a-M016e350dd527c8da4693f685
<https://9fans.topicbox.com/groups/9fans/T9209adeaba1b3a8a-
Delivery options: https://9fans.topicbox.com/groups/9fans/
subscription <https://9fans.topicbox.com/groups/9fans/subscription>
*9fans <https://9fans.topicbox.com/latest>* / 9fans / see discussions
<https://9fans.topicbox.com/groups/9fans> + participants
<https://9fans.topicbox.com/groups/9fans/members> + delivery options
<https://9fans.topicbox.com/groups/9fans/subscription> Permalink
<https://9fans.topicbox.com/groups/9fans/T9209adeaba1b3a8a-
------------------------------------------
9fans: 9fans
Permalink:
https://9fans.topicbox.com/groups/9fans/T9209adeaba1b3a8a-Mff7b8ff811c591ee129b6f06
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription