I recently installed a neat little piece of software called Eagle Mode on my Linux desktop (a Raspberry Pi 4). It uses a concept of a “Zoomable UI”, in which instead of double-clicking files and folders to open them, you just zoom in and out and pan around. It created a really neat, cohesive and overall plain fun environment to use. In fact I’ve almost switched to it entirely for day-to-day file management. It’s incredibly convenient to have a comprehensive at-a-glance view of everything. Its power becomes much more clear when applied beyond just file management; if you zoom around and look at some of the other included modules, like the Clock and the Chess game, it feels like it really could replace our current WIMP desktops one day. It’s the type of environment you can really only get a feel for by exploring it yourself.

The other kind of UI that I find really exciting is the spatial UI in Smalltalk. My experience has primarily been with Squeak, so I’ll speak to that specifically. The part I found intriguing was not the regular windowing UI - that was pretty standard. But almost everything else about Smalltalk fascinated me. The object model and message-passing stuff is less relevant to this post, so I won’t dive into that here. What caught my attention was the GUI objects, that were fully composable, you could make other objects out of, and place anywhere on the desktop, resize, rotate, and overall treat like actual objects, not windows. It was a fully spatial environment, a bit like the old Mac OS Finder but working with objects instead of files.

I think the future of the GUI is going to be some sort of combination of the two. Some kind of GUI where you have an infinite, spatial, zoomable desktop made of objects which can contain other objects.

This post was an overview, I’ll do a more detailed deep-dive soon.