Two Wrongs

Emacs and the Orthodox GUI Paradigm

Emacs and the Orthodox GUI Paradigm

I have preferred orthodox file managers over the Microsoft-type explorers for as long as I have intelligently used computers. The most apparent benefit of orthodox file managers is probably the dual-pane layout with two simultaneously open directories, but that is only one of two important features.


The other is related to the word orthodox, which I only recently stumbled upon an explanation for. The word orthodox means “traditional”, or “the way things are done”. An orthodox file manager looks anything but traditional. So what’s up with that?


Well, at one time we had these command line interfaces. They were rich and flexible abstractions, often allowing advanced users to string together commands in ways the original authors had not envisioned. This made it possible to create high-level types of automations, and then build even higher level automations on top of those.

while IFS=, read dir; do
    ls -l $dir/*.jpg | grep -vE ^d | xargs feh
done < places.csv

Then came computer graphics, and with it the graphical user interface, gui. Makers of software quickly realised that if they cram all commands into the gui, they will get a complete mess. Simple tasks will be buried among advanced tasks, and advanced users will no longer be able to find the specific 5% of the advanced tasks they actually used. So the gui became a dumbed down version of the command line interface, supporting only the most basic controls. Worst of all – in a gui there is very little flexibility to combine, repeat and remix commands. You can’t create a new button from two checkboxes, a scrollbar and a menu option.

But of course, the world is not as black and white as I have made it out to be. There are several attempts at solving the problem of making a gui as flexible as the corresponding command line interface. Some solutions are successful, others not so much.

One of the really good approaches is to put your primary focus on the command-line interface, and only once that is good, build a graphical interface on top of it, as an adapter. What you get then is a graphical application with a – well – orthodox foundation. A gui on top of a command line.

So that’s why they call it orthodox. It is the traditional way of doing it, as soon as you pop open the hood.

The Orthodox gui

So the idea, in brief11 I recommend taking a look at Less Is More: The ofm Paradigm by Dr. Nikolai Bezroukov, 2012, if you want more detail on this., is that all actions in the othodox gui correspond to a command in the command-line language of the application. You press a checkbox, a command is executed.

When you press a button in an orthodox gui, a command is generated and executed n the background.

(maybe also of OFMs)

Emacs Is Orthodox

Bonus: StumpWM