After a brief diversion with the Acme editor (a big part of Plan 9) and some modern Smalltalk environments (Squeak, Cuis, and Pharo), I can't help but feel like we are stuck in a very local optimum as far as UI/UX go.

The insane amount of introspection available to you in a Smalltalk image, and the way every bit of text becomes a potential button or action in Acme just put the lack of creativity in modern interfaces. I say all this as a Haskell and Nix fan as well, so I'm very in-tune to the benefits of functional purity and reproducibility in a computing system. It really makes the silo-ed world of isolated microservices, containers, and walled "garden" ecosystems seem really sad.

I guess this is my way of saying, that we should all try to do things differently. Haskellers, go learn Smalltalk. It's not a big deal that things mutate things when you can literally inspect every object as its running, including the debugger :D. Smalltalkers (or Rubyists or whatever is closest) go learn Haskell. Sometimes boundaries are GOOD. Formality can be very helpful when it comes to organizing, designing, and reasoning about your stuff!

And we should all try to do something weird.

You would love Oberon, and its derived OSes, Acme UI is based on it.

In Oberon, you can select any piece of text and apply a command on it.

Commands are public procedures in dynamic modules, so Module.Command will load it if not already loaded, and then execute command.

There are a couple of ways to write commands, depending if the act on selected widgets, selected text, selected windows, or if they ask for additional input.

http://www.projectoberon.net/

For trying out it emulated on the browser,

https://github.com/schierlm/OberonEmulator

And how the latest iteration of it, Bluebottle (AOS) with Active Oberon, looks like

http://www.progtools.org/article.php?name=oberon&section=com...

One of the great things about PowerShell and Windows, is that despite all the warts it has, it allows exactly a similar kind of workflow, with .NET, DLLs and COM replacing that Module.Command experience.

GNOME and KDE can offer similar workflows, alongside DBUS, and fish shell, however people seem more keen in keeping the UNIX experience of yore instead of going down that route.